PFTerminal 0.1.19 · Rust TUI · based on the open-source Codex CLI

The AI terminal that answers to you.

Same models. Less time. Less spend. Open source.

PFTerminal is an enterprise-grade, open-source coding-agent harness built on Codex. Across seven matched comparisons using the same named model and provider route, it was 39.8% cheaper and 46.6% faster at the median. Bring your own provider keys or buy prepaid inference with USDC—without a credit card or seat license.

01 / INSTALL

Install it in one line.

Install · PFTerminal 0.1.19

Linux

curl -fsSL https://github.com/agtico/PfTerminal/releases/latest/download/install.sh | sh

macOS

curl -fsSL https://github.com/agtico/PfTerminal/releases/latest/download/install.sh | sh

Also available as PFTerminal-aarch64-apple-darwin.dmg and PFTerminal-x86_64-apple-darwin.dmg.

Windows

Invoke-RestMethod https://github.com/agtico/PfTerminal/releases/latest/download/install.ps1 | Invoke-Expression

Use the native PowerShell installer. PowerShell's curl alias is unsupported.

Package, DMGs, local state & uninstall

PFTerminal is a Post Fiat product. Its source is published under the agtico GitHub organisation and its npm package under the @agticorp scope. Creates a pfterminal command. Does not touch an existing codex command. Stores all state in $HOME/.pfterminal.

  • npm package: @agticorp/pfterminal
  • Bun: bun add -g @agticorp/pfterminal
  • macOS DMGs: PFTerminal-aarch64-apple-darwin.dmg · PFTerminal-x86_64-apple-darwin.dmg
  • Releases: github.com/agtico/PfTerminal/releases
  • Documented uninstall covers the binary, packages, and local state.
  • For trusted workspaces, pfterminal --yolo launches without approval prompts.

Six providers route through the model selector into a supervised chain: Nazgul, Troll, and Orc.

Scroll terminal horizontally →

PFTerminal 0.1.19 command map. Ambient GLM 5.2 is the default model path; /providers grants access; /model selects provider, model, and reasoning effort; Nazgul supervises Trolls and Orcs; the vault, wallet, GPU, and Task Node surfaces remain separate commands.

02 / MODELS

Every model, one terminal.

Ambient GLM 5.2 is the default model path. /providers grants provider access; /model selects the provider, the model, and the reasoning effort. A spawned agent may differ from its parent on all three.

01OpenAIopenai
02Ambientambient
03Z.AIzai
04OpenRouteropenrouter
05Basetenbaseten
06Vercel AI Gatewayvercel
Per-agent routing/model
Open the complete provider protocol table

Scroll table horizontally →

The six built-in providers, numbered 1–6, as configured in docs/config.md. Additional access surfaces are listed below and are not part of this count.
#Provider idDisplay nameBase URLCredentialWire API
1openaiOpenAIhttps://chatgpt.com/backend-api/codexAccount loginResponses
2ambientAmbienthttps://api.ambient.xyz/v1AMBIENT_API_KEYChat Completions
3zaiZ.AIhttps://api.z.ai/api/coding/paas/v4ZAI_API_KEYChat Completions
4openrouterOpenRouterhttps://openrouter.ai/api/v1OPENROUTER_API_KEYChat Completions
5basetenBasetenhttps://inference.baseten.co/v1BASETEN_API_KEYChat Completions
6vercelVercel AI Gatewayhttps://ai-gateway.vercel.sh/v1AI_GATEWAY_API_KEYResponses
Additional access and selection semantics

Additional access surfaces

Kimi Code, Anthropic / Claude Plan, and the PfTerminal Plan are credentialed through /providers. A GPU endpoint you rent yourself appears in /model once it reports READY. None of these are counted among the six built-in providers.

Two controls, kept separate

Adding a credential does not select a provider. If a model is unavailable, /providers shows authentication state and /model shows catalog visibility — before anything is reconfigured or reset.

Surfaces PFTerminal integrates with

OpenAI Ambient Z.AI OpenRouter Baseten Vercel AI Gateway Anthropic Moonshot Kimi Vast.ai RunPod Solana Post Fiat Task Node

These are the systems PFTerminal talks to, not partners, customers, or endorsers.

The model is a per-agent decision, not a per-company one.

03 / HIERARCHY

A chain of command, not a pile of tabs.

/spawn creates managed work entities with an explicit role, model, harness, and parent/child relationship. Agents do not exist as isolated tabs with no visible chain of command.

  • NazgulRoot supervisor bound to the pane you talk to. Converts your objective into coordinated work.
  • TrollEngineering-manager tier. Manages delegated execution, reviews Orc output, and reports upward.
  • OrcBounded IC executor. Performs implementation or investigation work and reports results upward.
Hierarchy operating notes

Per-agent model selection

Every spawned agent can be given a different provider, model, and reasoning effort than its parent.

Persistent supervision

/orchestrate attaches a lasting supervisory assignment to an existing worker or pane — attach, pause, resume, extend, test/fire, detach. /spawn creates the crew; /orchestrate manages it.

Cross-provider tool surface

Spawn tools serialize as plain functions rather than ToolSpec::Namespace, so the hierarchy survives providers whose namespace_tools capability is false.

Claude Code headless pane proof

PFTerminal runs real claude -p headless turns against a local Anthropic Messages bridge that translates Claude Code Messages requests to the chosen provider using the vault-held key, then returns Claude-compatible JSON/SSE. The Ambient parity workflow suite passed on 2026-06-25. Every other profile's status is listed in the shipped, experimental, and not-built matrix below.

04 / CUSTODY

You hold the keys and the wallet.

Two separate stores, deliberately. The vault stores service credentials. The wallet manages a signing key, on-chain balances, and PfTerminal Plan linkage.

Vault and wallet implementation details
/vault — encrypted credentials and user secrets

Masked entry for provider keys and arbitrary secrets. /vault list and /vault show <label> are metadata-only views. /vault credential add refuses an inline secret and opens the secure modal. Copy-to-clipboard never prints the secret into chat.

Recovery hardening

Release 0.1.19 hardened recovery: an existing vault validates every available key source against its own ciphertext and never generates or overwrites a key during recovery. Stale file-fallback keys can no longer shadow a valid OS-keyring key, and every failure path preserves ciphertext.

/wallet — Solana signing key and on-chain funds

A local Solana-mainnet wallet holding SOL and canonical USDC. Create or restore a wallet, save the recovery material from the secure view, and set a passcode. Recovery material is never requested or repeated in chat.

Unlock, lock & removal

Unlock grants signing capability to the current TUI for one action or the selected duration. Lock revokes it. Remove wallet from this device removes local custody and the local plan credential; it does not move on-chain funds and does not cancel a paid period.

Scroll diagram horizontally →

Two separate local stores. The vault encrypts provider API keys and arbitrary user secrets and never prints a value into chat. The wallet holds a Solana-mainnet keypair with SOL and canonical USDC behind a passcode, and unlocking grants signing capability only for one action or a chosen duration.

The vault holds your credentials. The wallet holds your money. Neither holds you.

05 / GPU

Rent third-party GPU capacity with explicit spend limits.

/gpu rents third-party capacity on Vast.ai and RunPod. PFTerminal does not provide a free GPU pool; the marketplace account you connect is the account that gets billed.

Spend controls and provisioning stages

Three controls, asked before the search

  • Maximum hourly USD price
  • Maximum total USD spend
  • Duration in whole minutes — setup, model download, and loading consume this time

PFTerminal then searches compatible offers and shows a final billable confirmation.

Provisioning stages

  • Hardware checks
  • Runtime setup and build
  • Model download
  • Artifact verification
  • Loading
  • Endpoint qualification → READY

Only READY means the rented model is available in /model. /gpu is the authoritative cross-process view of active or potentially billable rentals and estimated spend.

Scroll diagram horizontally →

A rental only becomes selectable in /model after all six provisioning stages complete and the endpoint reports READY. The maximum hourly price, maximum total spend, and duration are set before PFTerminal searches for offers.
Cleanup and billing boundary
Cleanup: two different actions

Stop serving removes the endpoint from model selection, and provider billing continues. Terminate rental requests provider cleanup; treat billing as unresolved until PFTerminal reports provider-confirmed termination. Exiting PFTerminal is never a substitute for terminating a rental.

Qualified GPU recipes on record

Scroll table horizontally →

Qualified GPU recipes on record
ProviderRecipeEndpoint boundary
Vast.ai4×H200, SGLang TP4Token-authenticated SGLang endpoint behind a verified HTTPS tunnel
RunPod2×H200, pinned SGLang TP2RunPod authenticated HTTPS proxy boundary
Vast.aiOfficial zai-org/GLM-5.2-FP8 weightsServed and qualified end to end

06 / PERFORMANCE

39.8% cheaper. 46.6% faster.

PF Terminal is a leaner open-source coding harness. Across seven matched comparisons, each harness used the same named model and provider route. Every comparison favored PF Terminal on both cost and elapsed time.

Median cost39.8%cheaper
Median time46.6%faster
Release campaign42matched runs
PF Terminal vs Hermes

Kimi K3 · OpenRouter · website generation

PF Terminal
$1.75 · 24.7 min
Hermes
$2.52 · 31.2 min

30.7% cheaper and 26.7% faster.

PF Terminal vs Claude Code

Opus 5 · Anthropic · website generation

PF Terminal
$2.89 · 17.0 min
Claude Code
$6.70 · 29.7 min

56.9% cheaper and 74.3% faster.

What was held constant: the named model and provider route inside each comparison. Functional verifiers scored task completion; provider billing supplied model cost; wall-clock measurement supplied elapsed time. The PF Terminal team designed and ran the study, and it has not yet been independently replicated.

07 / RUNTIME

It is a fork of a real runtime, not a wrapper.

PFTerminal keeps the Codex CLI's local coding-agent runtime and makes provider access, credential storage, packaging, and product surfaces first-class. The changes are code-level, not prompt text.

Source ledger and claim provenanceCheck any claim on this page against its source

performance report provider config slash commands changelog 0.1.19 Apache-2.0 licence releases live plan catalogue

Every number, provider row, command, price, and date on this page comes from one of these files. They are public; read them before you trust us.

Open the runtime surface index
Inherited runtime surfaces
  • Tools and approvals
  • Sandboxing and execpolicy
  • MCP servers
  • Non-interactive exec mode
  • Review modes
  • AGENTS.md project instructions
Skills and plugins
  • Bundled system skills in $HOME/.pfterminal/skills/.system/
  • User skills in $HOME/.agents/skills/
  • Repo skills in <repo>/.agents/skills/
  • Plugins with a .codex-plugin/plugin.json manifest
  • Apps and connectors exposed as MCP tool sets
Open source
Guardrails and in-terminal docs
  • Provider hammer reduction
  • Tool-call runaway guard
  • /docs browses the bundled documentation inside the terminal
  • /status and /usage report session and allowance state

08 / TASK NODE

Wired into Post Fiat Task Node.

Task Node is the agent-side work ledger. Link an account, inspect tasks, submit evidence, answer verification, read rewards and balances, and open Task Node chat or context — without leaving the terminal.

Work ledgerTask Node / workflow
  1. 01Request
  2. 02Evidence
  3. 03Reward

ChatContextVerification

Every /tasknode form
  • /tasknode link link a GitHub-backed Task Node account
  • /tasknode status account and session status
  • /tasknode tasks [tab] tasks; defaults to outstanding
  • /tasknode outstanding outstanding tasks
  • /tasknode verification tasks awaiting verification
  • /tasknode refused refused tasks
  • /tasknode rewarded rewarded tasks
  • /tasknode task <id> actions for one task
  • /tasknode request open the request prompt
  • /tasknode request <text> submit a request inline
  • /tasknode requests active requests
  • /tasknode context open Task Node context
  • /tasknode chat open Task Node chat
  • /tasknode chat <text> submit a chat message
  • /tasknode balance read-only balance
  • /tasknode rewards recent rewards
  • /tasknode logout end the Task Node session

09 / PAYMENT

Buy AI inference with USDC. No credit card, no seat license, no account signup.

Provider access and billing boundaries

Provider access

Use /providers to grant provider access and /model to select the provider, model, and reasoning effort. Provider credentials can be stored in the encrypted /vault.

PfTerminal Plan

Buy a prepaid PfTerminal Plan from /wallet: unlock the wallet, review the tier and exact USDC amount, then confirm. After activation, the plan's models appear in /model.

Plan lifecycle details
  • Plan details show prepaid tier, token use, limits, reset dates, and queued periods.
  • Upgrade purchases the period shown on the confirmation screen.
  • Recover existing plan signs an ownership proof and sends no USDC.
  • Disconnect PfTerminal Plan removes the local plan credential while retaining the wallet and paid period.
  • Durable payment receipts are the settlement evidence.

Third-party GPU rentals

Vast.ai and RunPod bill the marketplace account. PFTerminal requires a max hourly USD price, max total USD spend, and duration in whole minutes before it searches compatible offers.

Scroll table horizontally →

PfTerminal Plan catalogue, read from the plan gateway on 30 July 2026
PlanPriceTermTokens / monthTokens / weekMax output tokens
starter1 USDC1 month1,000,000250,00032,768
basic20 USDC1 month20,000,0005,000,00032,768
power50 USDC1 month50,000,00012,500,00032,768
pro200 USDC1 month200,000,00050,000,00032,768
Settlement and plan allowlist

Settlement is canonical USDC on Solana mainnet. Plan model allowlist as published by the gateway: z-ai/glm-5.2, moonshotai/kimi-k2.7-code — this describes plan scope, not a complete PFTerminal model roster. /wallet is authoritative at purchase time.

The exact tier and USDC amount are shown in /wallet before confirmation.

Prepaid

You buy a period up front. There is no recurring charge to cancel.

Non-custodial

The signing key stays on your machine, behind a passcode you set.

Revocable

Disconnect the plan credential and keep both the wallet and the paid period.

10 / COMMANDS

The whole product-specific surface, in one screen.

The index below contains 24 product-specific command entries. Variants such as /spawn status are counted as entries. The Task Node forms remain grouped under /tasknode.

/model /vault /wallet /gpu /spawn /tasknode
Open the complete 24-entry command index
  • /model select provider, model, and reasoning effort
  • /providers manage provider credentials and account login
  • /vault open the encrypted credential vault menu
  • /vault list list credential labels and metadata
  • /vault show <label> inspect one credential's metadata
  • /vault credential add masked secure-entry flow
  • /wallet wallet, balances, and PfTerminal Plan
  • /gpu rent, monitor, and terminate GPU capacity
  • /spawn open managed Nazgul, Troll, and Orc orchestration
  • /spawn status show the hierarchy and worker status
  • /spawn nazgul bind an existing user pane as the root
  • /spawn troll create a Troll under a parent
  • /spawn orc create an Orc under a parent
  • /orchestrate attach persistent supervision to a worker
  • /orchestrate status show supervisory assignments
  • /panes switch user, Claude Code, and spawned panes
  • /agent switch the active native agent thread
  • /tasknode Task Node menu and its listed forms
  • /skills browse bundled, repo, user, and plugin skills
  • /docs browse bundled documentation in the terminal
  • /status session, model, permissions, and token config
  • /usage provider allowance and reset information
  • /ps inspect background terminals
  • /stop stop all background terminals

11 / STATUS

What is shipped, what is experimental, and what is not built.

Publishing the third column is the point. Everything in it exists as a specification or a backlog item, not as a feature you can use today.

Shipped
  • Six built-in providers
  • Encrypted vault
  • /spawn Nazgul, Troll, and Orc orchestration
  • /orchestrate persistent supervision
  • Claude Code headless panes on Ambient
  • /wallet and PfTerminal Plan purchase
  • /gpu rental on Vast.ai and RunPod
  • /tasknode, /docs, skills, plugins, MCP
Experimental
  • Claude pane profile on Z.AI
  • Claude pane profile on Baseten
  • Claude pane profile on OpenRouter
  • Claude pane profile on Vercel
  • Claude pane profile on Claude Plan
  • Live-smoke-tested, and not yet through the four-workflow parity suite that Ambient passed
Not built or not verified
  • Balrog planner and the Grimoire
  • Wyverns, Golems, and campaign documents
  • Nostr reachability
  • Hyperliquid, staking, and borrowing
  • /subagents diagnostics view
  • These are specifications and backlog items, not features

Start with one command.

Install PFTerminal 0.1.19 on Linux, macOS, or Windows. Apache-2.0, public repository, written in Rust.