Tera Pilot 2.4.0 — agent profiles, fleets & convenient keys
The v2.4.0 release is the “pick your agent for today” release:
- Agent profiles — every agent has a named profile with its own system
prompt (persona) and security level./agentopens a picker,/agent <id>activates a profile (persisted across restarts), and you create or
tune profiles with/agent new,/agent editand/agent delete.
Built-in presets:code(default),video(video production),
reviewer(read-only) andapex(top-tier general assistant persona).
Security levels (controlled/balanced/free) map onto autonomy +
Guardian and are applied to the live runtime, including the
system-prompt fragment, which previously was stored but never injected. - Fleet mode —
tera-pilot fleet start --agent code:~/code --agent video:~/videosruns several profiles at once as headless workers, each
in its own workspace;tera-pilot fleet task <agent> "<prompt>"queues
work, andtera-pilot fleet watchis the “main terminal” that shows a
live summary of every agent.fleet stop(or Ctrl+C) shuts the workers
down after their current task. In a fleet,controlledagents fail
closed on side-effecting tools (effectively read-only),balanced
auto-approves headless, andfreeruns un-gated. - Convenient API-key setup —
tera-pilot key(interactive picker +
hidden input,list/set/remove, masked output) and/keyin the
TUI (pick a provider, paste the key on the input line). Keys are stored
atomically in~/.tera_pilot/config.jsonand never echoed. - Remote task mode is now reachable from the CLI —
tera-pilot-daemon serve --inbound telegramreads~/.tera_pilot/inbound.json(Telegram bot token- mandatory allow-list of chat IDs) and wires the inbound messenger
listener to the task queue: any allowed message becomes a task, the task
runs on the daemon, and the result is reported back to the same chat
(pair with--notify telegramfor completion notifications). Replying
STOPcancels the running task. Previously the listener existed only as
a library module with no way to start it — “set a task and walk away”
was not actually possible.
- mandatory allow-list of chat IDs) and wires the inbound messenger
- Rust acceleration is one command —
make nativebuilds and installs
tera_pilot_native(sandbox checks, circuit breaker, compaction,
interjection buffer, cancel tokens) and verifies it loaded. The wheel
build was already reproducible and the extension is picked up
automatically bytera_pilot.agent.native; this just removes the manual
two-step dance from the docs. - TUI approval modals got a visual refresh — the Approve/Deny and
Guardian (Approve/Use Fix/Reject) dialogs now have clearer titles with
icons, the proposed action sits in its own bordered mono block, buttons
carry explicit borders and focus states, and both dark and light themes
were updated in lockstep. - TUI slash commands, grouped — the command palette and
/helpnow
organize every slash command into six categories (Security & Control,
Agent & Persona, Provider & Model, Session & Workspace, Info & Stats,
Actions & UI) with group headers and counts,/help <group>filters a
category, and picking a palette command runs its no-arg form instead of
erroring with "needs a parameter". - TUI header refresh & fleet polish — the top header is now
theme-aware (brand, version, active provider/model and workspace render
as chips that switch palettes with the theme instead of hard-coded dark
colors), the status line animates a braille spinner while a turn runs,
the composer border breathes with a working/pulse state, and the
welcome screen was refreshed with the key shortcuts.fleet start
accepts--provider/--model/--api-baseoverrides applied to
every worker (the stored API key is preserved), andfleet watchmarks
stale/dead workers and exits on its own once every agent has finished.