Skip to content

What's New

Use term2 --version to check your installation and npm view @qduc/term2 version for the latest published release.

  • Bare now supports subagent delegation while retaining its minimal shell-led prompt.
  • Interactive restart reloads a supported built CLI and resumes saved conversation and input text. /restart stop explicitly consents to stopping background work; POSIX Node with process.execve support is required.
  • The Discord bridge uses Gateway push to wake cursor-based REST delivery, with a 30-second connected safety poll and polling-only opt-out. Ingress stays in Discord while the default coordinator is unavailable; live Discord/mobile validation remains outstanding.
  • Gateway read-only grants work on writable folders without becoming write grants. Read-only sessions refuse shell execution outside the sandbox. Session reload/reconnect restores more recorded tool and reply state and forwards all multi-question answers.
  • Publication checks reject dirty, untagged, stale, or mismatched build identity. This protects future releases; it does not repair the immutable 0.39.0 artifact.

See the 0.40.0 changelog for details.

Published on npm as @qduc/term2@0.39.0. A recovery publish built from untagged main, so this package reports 0.39.0-dev+3789257 in term2 --version and records a development build identity. Fresh installation and CLI help checks passed; this does not establish live Discord/mobile acceptance.

  • Opt existing terminal sessions into the Discord bridge with runtime attachment, allowlisted input, private token enrollment, and explicit channel sends. Approvals and questions remain local; live Discord/mobile acceptance is still outstanding.
  • Model and subagent-pool pickers share catalog loading and isolate provider discovery failures. First-run provider setup proceeds to model selection.
  • Active-task menus keep labels compact and support transferring foreground work to the background. Model-waiting and reasoning phases have distinct labels.
  • Session identity and creation time survive internal context rollover; queued input and repeated tool-call occurrences retain their ownership through recovery.
  • Bare includes project instructions and image reading while retaining its minimal shell-led prompt. Lite remains an alias for Bare.
  • Continue saved conversations non-interactively with an explicit session ID or last, including JSON output and forked continuations.
  • Lite is a compatibility alias for Bare; targeted session reads avoid refreshing the full project search index.
  • Empty paused queues release their pause, and headless commands defer loading the terminal renderer.

See the 0.38.0 changelog for details.

  • Local context compaction prefers a one-shot summary over the live request prefix when the conversation fits the input window, preserving prompt-cache and transport affinity on Codex, Grok, and OpenCode while keeping the serialized chunk reducer as the fallback for larger histories.
  • Local context compaction caps the verbatim hot tail at 16,000 tokens (keeping at least the newest settled round when a single round exceeds the budget) and renders up to 40 recent tool receipts as a one-line digest outside <summary>.
  • The Bare profile advertises a foreground-only shell schema and batching guidance while keeping the full canonical schema for runtime normalization and approval checks.
  • The interactive banner and status bar read profile labels (Bare, Pair, etc.) directly from the built-in profile registry instead of falling back to Standard.
  • Native Codex freeform apply_patch tool calls pass { patch } to match the canonical tool schema instead of failing validation before writing.
  • /resume and term2 --resume sort session files by modification time before reading and stop full log parsing once the requested limit is filled.

See the 0.37.0 changelog for details.

  • The Bare profile now includes the skills catalog (activate_skill) and environment context.
  • Logging survives disk failures: a full or unwritable log disk produces one warning instead of crashing, and startup prunes application and provider-traffic logs older than 7 days or beyond 512 MiB per directory.
  • Sandbox blocked-read approval prompts (deny, allow once, Escape) resolve correctly instead of erroring.
  • Session rollover no longer runs while a queued submission owns the queue; a failed rollover preserves its handoff brief.

See the 0.36.0 changelog for details.

  • Opt-in Bare profile (--profile bare, /profile bare) with a minimal system prompt that keeps codebase tools and completion verification.
  • --profile <name> selects an operating profile at startup.
  • agent.backgroundWaitTimeoutMs bounds how long headless runs wait for background tasks (default 1 hour).
  • verifier.model designates an independent completion-verification model.
  • Headless runs with durable goals stop cleanly once completion verification passes.

See the 0.35.0 changelog for details.

  • Adaptive independent verification for durable goals: goal_check proposals can be gated by an independent verifier before goals are closed (agent.completionVerification).
  • Reworked interactive settings menu: /settings categorizes settings into curated tabs (Models, Providers, Context, Safety, Tools, UI, Hooks) with human-readable labels, dollar-denominated budget editing, masked API keys, and in-place boolean toggling.
  • Declarative provider preset inventory: provider configuration leverages presets for straightforward setup and connection management.
  • Runtime agent model discovery: agents and run_code scripts can query models and providers via list_models with filtering, pagination, and credential readiness.
  • Grok client version resolution: resolves the CLI client version dynamically to avoid API version floor rejections.

See the 0.34.0 changelog for details.

  • tools.shell is available inside run_code scripts with shared sandbox enforcement, approvals, timeouts, monitors, and job tracking.
  • The interactive model picker shows providers in a grouped leading column across unified and favorites views.
  • Custom catalogs (including OrcaRouter) isolate catalog adapters and filter unsupported generation models.
  • Provider policies are kept in owning adapters, and the conversation engine consolidates turns and submissions under a single loop runner and session projection.

See the 0.33.0 changelog for details.

  • Gemini tool continuations preserve thought signatures during replay, and rate-limit retries honor supported provider delays within the retry policy’s bounds.
  • Model filtering prioritizes whole-word matches and resets selection when results change.
  • Working indicators end tool steps when results arrive, show “Waiting for model”, and count down retry backoff.
  • run_code tool entries include return-shape guidance, with declared return contracts required for scriptable tools.

See the 0.32.2 changelog for details.

  • Codex sessions retain reusable WebSocket connections across turns.
  • Shift+Enter inserts a newline again in terminals that send the Alt+Enter sequence while idle.
  • Goal proposals show labelled outcome and success criteria, and background timers remain visible in narrow panels.

See the 0.32.1 changelog for details.

  • Durable goals have an agent stop check, and a valid achieved check closes the goal when the turn ends.
  • Requests that cannot fit a known model context window pause before sending. Non-interactive context and budget pauses exit with code 2 and resume guidance.
  • The opt-in contain budget escalation pauses at exhaustion; warn remains the default. --auto-approve never grants more budget.
  • New installs enable local context compaction and use adaptive output allocation. Existing saved settings are retained: enable compaction explicitly and remove a saved agent.maxOutputTokens to opt into the adaptive cap.
  • One-time approvals are bound to the answered call, and interrupted tool outcomes are marked unobserved on resume.
  • /retry-turn regenerates the latest user turn from its original prompt.

See the 0.32.0 changelog, including upgrade and downgrade compatibility notes.

  • Model selections retain their provider binding across settings, model menus, sessions, and subagent tier pools, so ambiguous model names no longer select the wrong provider.
  • Existing persisted model selections are migrated before strict settings validation, so older settings remain usable on startup.
  • Failed run_code scripts expose results from nested tools that already completed, allowing recovery without repeating their effects.

See the 0.31.1 changelog for details.

  • Themes and skins: configurable colour themes with automatic terminal-background detection through ui.theme, and classic, rail, cards, ledger, and zen layout skins through ui.skin.
  • Interactive input: queued input and drafts survive approval prompts and queued-message editing.
  • Web sessions: live turn status is exposed on reconnect, local errors are preserved, and active chat-completions streams cancel correctly.
  • Background work: background-shell watches surface matching output before retention eviction, and completed background agents release their pending approvals.

See the 0.31.0 changelog for details.

Highlights from 0.30.0:

  • More flexible delegated tasks: subagents accept a per-invocation specification with a goal, context, tools, constraints, completion criterion, model policy, and budget. Existing roles remain as presets.
  • Compose child agents in run_code: scripts can start, inspect, collect, and cancel child agents. Child permissions are narrowed to the parent’s authority, and approval requests use the session’s normal prompt.
  • Session goal proposals: the agent can suggest a goal with propose_goal; the user must approve it.
  • More web search options: Firecrawl and SearXNG join the configurable search providers.

The release also improves provider-pool failover, gateway session lifecycle handling, and web search configuration. See the 0.30.0 changelog for details.

This documentation site builds from main, so it can describe work ahead of the published package.

The web-client/ application is separate from this documentation site and connects through the private term2 serve gateway. Follow gateway setup for integration requirements.

For the complete release history, see the repository changelog. For changes on main since 0.39.0, see the tag-to-main comparison.