Pull to refresh

Gaunt Sloth 2.0: new package name, new commands, stricter config

About a year ago I wrote about Gaunt Sloth reaching 1.0, and in March about a couple of smaller additions. Today 2.0 is out, the biggest release so far, big enough to ship under a new npm name.

GitHub: https://github.com/pukeko-robotics/gaunt-sloth Docs: https://gauntsloth.app/docs/ Release notes: https://github.com/pukeko-robotics/gaunt-sloth/releases/tag/v2.0.0

Renamed: remove the old package first

2.0 is published as gaunt-sloth; gaunt-sloth-assistant is deprecated.

npm rm -g gaunt-sloth-assistant
npm i -g gaunt-sloth
gth --version

Both own the gth binary, so installing over 1.x can fail with EEXIST and leave 1.x running.

Packages

The CLI now sits on scoped packages: @gaunt-sloth/core, agent, review, batch, and JUnit and TeamCity eval reporters. @gaunt-sloth/review embeds standalone in CI with no commander, MCP or A2A dependency. gaunt-sloth-acp lets editors such as Zed use Gaunt Sloth as their agent.

New commands

The CLI went from eight commands to sixteen:

  • gth exec runs a markdown prompt as a pipe-clean script with an exit code.

  • gth eval grades YAML test cases with assertions and an LLM judge; think pytest for prompts. More in the next post.

  • gth batch runs one prompt over a CSV/JSONL of inputs, across several models if you like.

  • gth workflow runs a JS file that orchestrates the agent.

  • gth models lists callable models with context limits and cost from models.dev.

  • gth history / gth insights search and summarise recorded sessions.

Sessions

chat and code open a full-screen UI with markdown, collapsible tool panels and slash commands. Mouse reporting is on, so Shift-drag to select text, or /mouse off.

Sessions are recorded to ~/.gsloth/history.db by default, so --resume and /resume pick a conversation up again. /compact folds a long one into a summary, and the session does it by itself near the context limit. History stores tool output unredacted; history.enabled: false turns it off.

Shell commands, with brakes

In 1.x the agent only ran fixed commands you configured. Now it can compose its own, and approvals picks one of five modes: manual, write, assisted (default: a rater lets safe commands run and asks about the rest), auto (risky commands go back to the agent first) and bypass. A deterministic floor refuses the worst commands in every mode, bypass included. approvals.rater can point the rater at a stronger model. gth init ollama gets you running on local hardware.

Reviews find their own requirements

Like gth pr, gth review can now fetch the issue for a branch (commands.review.discovery), directly from Jira or through a discovery agent with tools you allow. With mergeBase it reviews a branch as its PR will show it. See the Jira example.

Strict config: the breaking part

Config is validated against one schema with no back-compat coercion. Old 1.x shapes (top-level command keys, boolean rating, devTools, *Provider keys, flat prompt keys) are hard errors. Run gth config validate before upgrading and read the migration guide.

Changes that raise no error:

  • the output header is one compact line, report files are no longer written, history is on;

  • gth api ag-ui binds to 127.0.0.1;

  • review and pr exit non-zero when the agent fails;

  • embedders import from @gaunt-sloth/*.

A JSON Schema gives editor autocomplete, .gsloth.config.ts works, and config is found by walking up from the current folder. New docs start at the Quickstart.

Try it, file an issue, or drop feedback in Discussions. Thanks to everyone who contributed to 2.0.

Tags:
0
Comments0

Articles