This repository was archived by the owner on Sep 20, 2026. It is now read-only.
Repository navigation
Releases: paytaca/opencode-plugin
Releases · paytaca/opencode-plugin
Release list
v0.3.3
Highlights
- Free concierge can now run your Paytaca wallet: when a paid session runs out, the free concierge can request a
paytacaCLI command (wallet info, token list, etc.). The plugin proxy executes it locally and feeds the live result back, so answers use real wallet data instead of guessing. Only thepaytacacommand is allowed — no other tools. - LIFT balance questions now answered correctly:
get_tokensexplicitly handles LIFT (accepts the name "LIFT" or its category id), andget_balanceis documented as BCH-only, so the assistant no longer claims it cannot see token balances.
Fixes
- MCP
get_plans,buy_plan,auto_refill, and the wrapper stability probe now require the exact Model ID, preventing mismatched model selection.
Full Changelog: v0.3.2...v0.3.3
v0.3.2
Highlights
- Guided plan purchases:
buy_plannow runs a strict 3-step flow (model → duration → payment method) instead of inline tier menus, supports paying with LIFT tokens (10% discount), and reports LIFT savings in USD. - Paytaca platform fee on LIFT payments (#3): LIFT-funded plan purchases sell tokens on the Cauldron DEX and now include a 0.3% platform fee (capped at $1, skipped when it would be below the 546-sat dust threshold), in addition to the DEX trade fee.
- Sharper pricing output: human-readable durations plus table-formatted
get_plans/get_credits, and concrete "buy this" suggestions in pricing responses and 402 messages.
Fixes
- Capped the internal
buy_planpurchase-probe body at 1 token to avoid MCP client timeouts. - Plan purchases now probe the backend plan endpoint several times and abort without broadcasting if pricing looks unstable or changes mid-purchase (
PAYTACA_PLAN_PROBE=0to disable).
Dependencies
- paytaca-cli 0.5.1: adapted MCP to CLI arg/output changes; paying plans with LIFT requires paytaca-cli >= 0.5.0.
- paytaca-cli 0.5.2: brings the platform fee to Cauldron swaps, plus double-count/NaN and bigint-safe fee-cap fixes.
Documentation
- README now covers the LIFT platform fee, the pre-purchase stability probe, and the paytaca-cli >= 0.5.0 requirement.
Full Changelog: v0.3.1...v0.3.2
v0.3.1
Highlights
This release keeps long Paytaca AI sessions running without interruption and answers your wallet questions even when you're out of credits.
Auto-refill — never stall mid-task
- New
auto_refillMCP tool arms automatic plan refills. Tell the assistant "keep buying 15-minute plans until the task is done, max 2 hours" and, once credits run out mid-request, the plugin silently buys another plan of the chosen size and keeps working — up to your configured cap, paid with BCH or LIFT. - Each refill is a real wallet payment; opencode asks for your approval once when arming.
Free concierge answers
- When your wallet has no paid capacity left, balance and "how it works" questions are now answered for free by a lightweight concierge model instead of a bare
402 Payment Required— no credits needed to ask about your wallet. - Genuine purchase actions still require payment and are never stuck behind the concierge.
- The proxy now forwards cached
X-Wallet-Balance-Sats/X-Lift-Balance-Unitsheaders (15s TTL) so the concierge can answer balance questions from live data.
LIFT payments & discounts
- Dynamic LIFT payment discount with emphasized savings messaging in payment prompts.
- LIFT pricing is quoted through
get_help/get_plans; pay with LIFT by saying "pay with LIFT" or "pay with my LIFT tokens".
Smarter assistant Q&A
- New
get_helpMCP tool: a Q&A guide on the wallet, funding, buying plans, paying with BCH or LIFT, Bitcoin Cash, CashTokens, and Paytaca itself. - Info tools append actionable "buy-now" next steps;
buy_planpre-checks credits and fails fast when a purchase is impossible (e.g. still-active credits, no LIFT balance).
Credits visibility
- New
creditsproxy command shows remaining time credits per model, and TUI toasts warn when time runs low or exhausted and celebrate when credits are added (manual buy or auto-refill). Disable withPAYTACA_CREDITS_TOASTS=0.
Fixes
- Resolve
paytaca-cliand@cashlabpaths robustly for the payment wrapper (hoisted installs,which/whereresolution). - Cross-platform CLI spawning and a Windows npm path fallback.
- Proxy always refreshes the payment wrapper on
startProxy, so updates to the bundled wrapper take effect without a restart.
Upgrade
opencode plugin update @paytaca/opencode-plugin -gRequires paytaca-cli@0.5.0+ for LIFT payments; BCH payments work with older versions.
v0.2.2
Highlights
This release brings LIFT token payments to Paytaca AI plans — you can now pay for AI time with your LIFT balance instead of BCH. The payment wrapper builds a single Cauldron swap transaction that sells LIFT and pays the x402 payTo address directly, so one on-chain transaction completes the purchase.
LIFT payments (opt-in)
- The
buy_planMCP tool gained apayment_methodargument (bch|lift). - Set it to
liftto sell LIFT tokens via Cauldron and fund the plan in a single swap transaction. The wallet's LIFT balance is used directly; leftover token dust returns as change. - LIFT is used only when explicitly requested (e.g. "pay with LIFT", "pay with LIFT tokens") — BCH remains the default.
buy_plannow fails fast with a clear message when the wallet holds no LIFT, mirroring the existing BCH insufficient-balance check.
Other changes
- Depend on
paytaca-cli@^0.5.0for the Cauldron machinery behind LIFT payments.
Upgrade
npm install -g @paytaca/opencode-pluginRequires paytaca-cli@0.5.0+ for LIFT payments. BCH payments continue to work with older versions.
v0.2.1
What's Changed
- feat(self-heal): the plugin now keeps itself consistent — on every launch it checks the npm registry and, if a newer version exists, pins the exact version in your opencode configs, removes stale lockfile pins, and cleans outdated plugin cache directories, so
opencode plugin installjust works (fc8c7fa) - fix(proxy): fixed a race where two concurrent chat requests could wipe a pending payment prompt, causing the tier-selection menu to loop infinitely after paying. A request can now only clear its own pending payment (a0554b8)
- feat(mcp): new
buy_plantool — ask for a plan for any model (not just the active one) and the assistant purchases it via x402 after opencode's approval prompt (79447d2) - fix(plugin): installs now work flawlessly on Windows, macOS, and Linux — Windows gets a
.cmdshim (no privileged symlinks), case-insensitive path handling, andos.homedir()-based config resolution (e791a0d) - feat(proxy): when the active model runs out of credits (402), the proxy now tells you if other models still have remaining credits so you can switch instead of paying — and it detects model switches, clearing stale payment prompts automatically (ff068bc)
Changelog
- feat: self-heal version installation and cleanup stale pins and caches
- fix(proxy): guard pending payment against concurrent response clears
- feat(mcp): add buy_plan tool to purchase time credits for any model
- fix(plugin): make install work cross-platform (win cmd shim, case-insensitive paths)
- feat(proxy): hint about other models with credits on 402 and detect model switches
- chore: bump version to 0.2.1
v0.2.0
What's Changed
- feat(mcp): the plugin now auto-registers a local
paytacaMCP server, so the assistant can answer account questions in plain language with live data — remaining credits, wallet balance, available models, and plan pricing (get_credits,get_balance,get_models,get_plans) (6d48b69) - feat(context): proxy-generated messages (payment prompts, tier-selection menus, credits output, payment notices) no longer reach the LLM. They stay visible in the session UI for you, but are stripped from the context sent to the model — along with your selection replies (e.g. picking a plan tier) — so coding conversations are never polluted by payment flow chatter and billed tokens drop (6d48b69)
- feat(mcp): added Paytaca CLI wallet tools to the MCP server — recent transactions (
get_transactions), receiving address (get_receiving_address), CashToken holdings (get_tokens), and sending funds (send). Sending always triggers opencode's native permission prompt first (paytaca_senddefaults toask) (350412a)
Changelog
- feat(mcp): add wallet tools — transactions, receiving address, tokens, send
- feat: register paytaca MCP server and keep proxy chatter out of LLM context
- chore: bump version to 0.2.0
v0.1.16
What's Changed
- feat(proxy): display USD tier prices in the payment prompt and
planscommand (b4641a9) — users now see the equivalent USD cost alongside BCH/CashToken pricing when selecting tiers.
Changelog
- feat(proxy): display USD tier prices in payment prompt and plans command
- chore: bump version to 0.1.16
v0.1.15
What's Changed
Payment flow improvements
- Fix(proxy): preserve tool calls in streamed responses —
message.tool_callsis now forwarded as SSEtool_callsdeltas (withfinish_reason: tool_calls) after the non-streaming paytaca-pay round-trip. Tool-using responses common in coding sessions are no longer dropped, which previously produced empty assistant messages in OpenCode. - Payment feedback in the chat — a
💳 Payment successfulmessage is now prepended before the streamed answer in both post-payment success paths. - Better payment failure handling — on failure the error is streamed and the tier-selection prompt is re-shown in the same response, restoring the pending payment to the
tier_selectstep so the next pick retries without a re-chat. - No double-charge on timeout — timeout keeps the processed-payment behavior (payment already handled, no re-prompt).
- Longer pay timeout — wrapper fetch timeout raised from 120s to 240s (
PAYTACA_PAY_TIMEOUT_MS).
Reliability
- Harden error handling for destroyed/ended responses — SSE and JSON writes are now guarded against already-destroyed or ended responses, with fallback JSON error responses when headers haven't been sent, and logging instead of silently swallowing failures.
- Better wrapper error extraction — errors are now parsed from the wrapper's stdout JSON when stderr is empty, instead of reporting a generic exit-code error.
- Quieter startup — proxy lifecycle logs silenced on startup.
Dependencies
- Upgraded
paytaca-clito v0.4.1.
Full Changelog: v0.1.14...v0.1.15
v0.1.14
What's Changed
- Fix(proxy): persist displayName in pending payment state — display names are now retained while a payment is pending.
- Fix(proxy): auto-restart stale proxy and fix port availability check — the proxy now restarts automatically when stale and the port availability check is more reliable.
- Fix(proxy): remove heartbeat auto-shutdown so proxy persists across sleep — the proxy no longer shuts down after a heartbeat timeout, so it stays alive across sleep/wake cycles. Also removes the now-unused bundled proxy/config modules.
- Chore: bump version to v0.1.14
- Merge branch 'master' of github.com:paytaca/opencode-plugin (
fca85bf)
v0.1.13
What's Changed
- Fix duplicate tier label in model names — removed the plugin-side tier suffix (e.g. "(Premium)") that was being appended to model display names. The backend's
display_namealready includes the tier, so this eliminates duplication like "DeepSeek V4 Pro (Premium) (Premium)".