terminal/

September 6, 2026 · View on GitHub

English | 中文

Summary

The terminal/ group gives agents persistent, owner-scoped terminal sessions: shell and REPL state — cwd, exported variables, activated environments, running interactive children — survives across tool calls. Three packages cover the family: terminal/ provides the owner-scoped session service behind ctx.terminals (sessions get opaque ids, and every operation stays fenced to the owning agent); terminal-bash/ starts an interactive bash or pwsh shell under the shared sandbox policy; and tool-terminal/ exposes six model-facing tools with bounded results. A terminal complements the one-shot bash and filesystem tools: use it when work needs interactive stdin or cross-call state. Sessions are process-local and do not survive a harness restart.

Table of Contents


Packages

The family is one session service, one shell backend, and one set of model-facing tools. Each child README owns the full contract; the subsystem reference owns the shared vocabulary and the generated service surface.

PackageRolectx key
terminal/Session service: owner-scoped sessions with opaque ids, exact-owner fencing, and awaited cleanupctx.terminals
terminal-bash/Shell backend: interactive bash or pwsh under the shared sandbox policy, with readiness detection and bounded outputregisters a backend on ctx.terminals
tool-terminal/Six model-facing tools with owner isolation and optional background sendsregisters on ctx.tools

Start with the subsystem reference for the shared types and the service surface, then the Agent Note for the design rationale and deferred boundaries.

Dev Note

Working context for maintainers — click to expand

None.