What's new
The short version of each release, written for people who use Polyglot rather than read its source. The full changelog on GitHub has every entry, including internal fixes.
polyglot updates itself in the background when autoUpdate
is on; otherwise npm install -g @usepolyglot/cli (or your package manager’s
equivalent) pulls the latest.
v0.11.0
Section titled “v0.11.0”Replay a saved session. polyglot replay <id|path>
re-runs a session against the current build and shows where it diverges from what was
recorded - which tool calls resolve differently now, which
repairs are no longer needed, whether a since-released fix
would have helped. By default it just re-resolves the recorded model output (deterministic,
no execution); --execute --seed <dir> re-runs the whole agent loop against a snapshot of
your files. --output-format json for scripting; --save turns the session into a
regression test. Handy when a local model breaks on something and you can’t tell whether
it’s the model or Polyglot.
v0.10.0
Section titled “v0.10.0”Remote MCP servers. An mcpServers entry can now give a url
instead of a command. Polyglot connects over the current Streamable HTTP transport
and falls back to legacy HTTP+SSE when a server only speaks that; headers carry auth,
with ${VAR} read from the environment so tokens stay out of settings.json. MCP
servers also connect in parallel now, each with a 10-second timeout, so a slow or
unreachable one no longer holds up startup.
Dependency modernization. zod 4, openai 7, glob 13, ink 7 / react 19,
and chalk dropped entirely - no behaviour change, and a few moderate pnpm audit
advisories cleared along the way.
v0.9.0
Section titled “v0.9.0”Secret & PII scanning. Every tool result - shell output, file reads, web fetches,
MCP tools - is now scanned for secret-looking values (API keys,
tokens, private keys) before it reaches the model, and flagged in the transcript and
the audit log. On by default in warn mode; set
redaction.mode: "redact" to strip them,
redaction.pii: true to add email/SSN/card detection. This is content-based and
complements the existing path-based prompting for secret-named files.
Hooks. A hooks block in settings.json runs your own shell
commands at three points: preToolUse (block a tool call), postToolUse (block a
result), and userPromptSubmit (block a prompt or add context to it). Exit 2 blocks;
optional stdout JSON gives structured control. Hooks in a project’s settings file are
off unless the global config sets hooks.allowProjectHooks: true.
v0.8.0
Section titled “v0.8.0”File mentions. Type @ in the input for a fuzzy-search list of the project’s
files; on send, each @<path> is replaced with the
file’s contents inline, so the model has it without a read_file call. The list
respects .gitignore; secret files are never inlined. Works in -p mode too.
Agent definitions. Drop a .polyglot/agents/<name>.md -
frontmatter for the description, an optional tool allowlist, an optional model; the
body is the system prompt - and run it with @name <task> at the start of a message.
It runs as a one-shot sub-agent with only its allowed tools and streams its result.
The model can also delegate to one on its own through an agent_<name> tool.
/agents lists them.
Skills. Put a focused instruction bundle at
.polyglot/skills/<name>/SKILL.md and switch it on for the
session with @name - its guidance is added to the system prompt until /skill off.
Bundled files sit alongside SKILL.md and the model reads them on demand. Same
SKILL.md layout as Claude Code, so skills are portable. /skills lists them.
v0.7.0
Section titled “v0.7.0”Model failover. Configure a routing.failover list
and, when the active model errors out or stops producing valid tool calls mid-turn,
the turn continues on the next model instead of stopping. The switch is sticky for the
session and shown in the transcript; /model puts you back. Point a local model at a
hosted one (or the reverse) and you keep working through an outage on either side.
Dedicated models for compaction and planning. routing.summaryModel runs
/compact on a cheaper model; routing.planModel runs plan-mode turns on a model of
your choice.
Cheaper sub-agent model. Set subAgentModel
and task sub-agents run on it instead of inheriting the parent’s model - delegated
grunt work doesn’t need your best model. Sub-agent token cost now shows up in /cost
as its own line.
Share a session. polyglot share <id> exports a
transcript to Markdown or a standalone HTML file, with secret-looking values scrubbed
by default, for pasting into a PR or a bug report. --resume now also accepts a path
to a .jsonl session file, so a session can be handed between people.
Per-model reliability. A running tally of how each model is doing at tool calls
this session - calls made, repairs needed, parse failures, give-ups - shown in
/status, the new /reliability command, and next to each model in the /model
picker (“92% clean this session”). The status bar flags trouble once there is any.
Prompt caching (Anthropic). The system prompt is marked cacheable, so from the
second turn of a session it’s served from cache at roughly a tenth of the input-token
price. /cost reflects the discount automatically - nothing to configure.
v0.6.0
Section titled “v0.6.0”First-run setup. Running polyglot with no config now launches an interactive
polyglot init wizard instead of exiting with an
error.
Project instructions. Polyglot reads
AGENTS.md / POLYGLOT.md from your repo (and
~/.polyglot/ for global rules) and prepends them to the system prompt - standing
context like build commands and conventions. AGENTS.md is the cross-tool standard,
so a repo set up for another agent already works.
v0.5.0
Section titled “v0.5.0”Repairs are visible. When Polyglot fixes a malformed tool call from a weak model,
the card shows a ↺ repaired marker; Ctrl+R / /raw show the model’s verbatim
output; /reliability keeps a per-model tally. A parser fix can no longer quietly
mask a model getting worse.
Older releases: see the full changelog.