Releases: baalimago/clai
v1.10.0
I'm directing clai towards becoming the goto for cli-native powerusers. With the addition of clai -r chat dir it's possible to attach metadata to the shell:

- Profile
- Am tokens used
- Dirscope/global scope
The idea is to continue this journey, wherever it takes us. So while it's possible to do agentic coding, there are better tools for this. Clai is
a lot less convenient, requires more setup. But, in these configurations, value lies. I've found clai to be much more token efficient. I
append more context to hone in on a solution to each reply, it's very easy to do so. The requirement is solid terminal comprehension and alignment
to unix pipes + principles.
Breaking changes (v1.10.0)
- Removed
clai cmdcommand. - Removed
clai chat new(chat shell is now always the input; interactive creation is redundant). - Refactor(breaking): Tools API changed from
Tools→RequestedToolGlobs(and tools moved into a public package / new injection approach).
Major features
- Chat UX upgrades:
- Continue chat with same profile; profiles are attached to chats.
clai chat listimprovements: shows profile + token usage; selection by number + Enter; better failure handling (lists chats if ID not found).- Smarter continuation behavior: empty-string continue can fall back dirscope → globalscope; auto-fallback to globalscoped chat if dirscoped missing.
clai chat diradded (dir-scoped chat functionality).- Conversations are always saved, even on exceptions; added replay/dirscope related improvements incl
-drequery support.
- MCP / toolchain improvements:
- MCP servers can be defined in profiles; envfile support added to MCP spec.
- Tool selection fixes (GlobToolSelection) and ability to inject/register tools via public package; output can be routed to an
io.Writer. - Limit agentic tool calls (pkg-level guardrail).
- Provider/model updates:
- Huggingface provider support.
- Default model tweak
gpt-5-2→gpt-5.2. - Sora 2 supports input images (PNG only).
- Quality/docs/testing:
- Goldenfile test suite added (incl architecture docs); new/updated architecture docs, examples, showcase.
- CI/test coverage workflow updates; general lint/vet/cleanup;
clai versionfixed (again) andclai helpformatting fixed.
- Config/paths:
- Support overriding Clai config directory; robust
XDG_CONFIG_HOMEhandling; consistent config-dir resolution (GetClaiConfigDir).
- Support overriding Clai config directory; robust
Pull requests
- feat: Pipe images into Sora 2 (png only) by @baalimago in #87
- feat: pkg/agent + improved tooling callsign for pkg/text/FullResponseQuerier by @baalimago in #88
- fix: clai help is now properly formatted by @baalimago in #91
- cleanup: Removed convoluted summary system on rate limit by @baalimago in #92
- Feature: Allow Clai config directory to be overriden by @abyss in #89
- feat: MCP server configurations in profiles by @baalimago in #94
- feat: continue chat with same profile by @baalimago in #95
- fix: Custom marshaler for polymorphic fields on MCP input ParameterObject by @baalimago in #96
- fix: Full support of MCP server json schema by @baalimago in #97
- fix: Tool flag
-t=mcp_example*,datenow works as expected by @baalimago in #98 - feat: Huggingface support by @baalimago in #99
- feat: Envfile in mcp specification by @baalimago in #101
- feat: Directory scoped conversation via
-dre query <continue conv>by @baalimago in #100 - feat:
clai chat dirto see global chat (prevQuery.json) or dirscoped chat by @baalimago in #102 - feat: Chat upgrades - Shell is always input (no more
clai chat new) by @baalimago in #103 - agentify: Construct architecture and goldenfiles by @baalimago in #104
- feat:
prevQuery.json->globalScope.json, painted the tui elements by @baalimago in #105 - docs: Example + README update by @baalimago in #106
New Contributors
Full Changelog: v1.9.0...v1.10.0
v1.9.9
What's Changed
- feat: Huggingface support by @baalimago in #99
- feat: Envfile in mcp specification by @baalimago in #101
- feat:
clai chat dirto see global chat (prevQuery.json) or dirscoped chat by @baalimago in #102 - feat: Directory scoped conversation via
-dre query <continue conv>by @baalimago in #100 - fix: Tool flag
-t=mcp_example*,datenow works as expected by @baalimago in #98
Full Changelog: v1.9.6...v1.9.9
v1.9.6
What's Changed
- fix: Full support of MCP server json schema by @baalimago in #97
Full Changelog: v1.9.5...v1.9.6
v1.9.5
What's Changed
- feat: continue chat with same profile by @baalimago in #95
- fix: Custom marshaler for polymorphic fields on MCP input ParameterObject by @baalimago in #96
Full Changelog: v1.9.4...v1.9.5
v1.9.4
Full Changelog: v1.9.3...v1.9.4
v1.9.3
This one is pretty cool! Using clai -profile-path <path-to-profile> query <some user prompt> it's possible to "build" agents by simply writing a json file.
Example: go run github.com/baalimago/clai@latest -prp examples/profiles/trade-bot.json query 'Run your hourly trade'. This needs npx and pnpx to work due to the mcp servers.
What's Changed
- feat: MCP server configurations in profiles by @baalimago in #94
Full Changelog: v1.9.2...v1.9.3
v1.9.2
What's Changed
- Feature: Allow Clai config directory to be overriden by @abyss in #89
- fix: clai help is now properly formatted by @baalimago in #91
- cleanup: Removed convoluted summary system on rate limit by @baalimago in #92
- feat(pkg): Limit agentic tool calls in #93
New Contributors
Full Changelog: v1.9.1...v1.9.2
v1.9.1
What's Changed
- feat: Pipe images into Sora 2 (png only) by @baalimago in #87
- feat: pkg/agent + improved tooling callsign for pkg/text/FullResponseQuerier by @baalimago in #88
Full Changelog: v1.9.0...v1.9.1
v1.9.0
I've introduced breaking changes for the -t/tools flag, hence bump to minor instead of hotfix. The flag is no longer a bool, but a
a string, so running it like clai -t q Hello use some tools wont work. Instead you need to use clai -t= q... or clai -t=* q .... The reason
for this is since it's now possible to specify which tools to use, clai -t=file_tree q Inspect file structure.
Features:
- Clai as a tool - This enables recursive calling
clai -t=clai_* q Please create some workers which research quantum physics - New subcommands
clai tools+clai profilesso that clai can get context on how it's configured - Exported clai as a package: it's now possible to build other apps using clai as agentic engine
- Pipe in images into omni-models and for image editing
- New subcommand
clai video <prompt>- Video generation with Sora 2 - Vendors/models for: grok, gemini-3-pro, gemini-flash-image + fixed support for novita and mixtral
What's Changed
- Added support for Inception models by @baalimago in #68
- Refactor: Made Clai usable as package for agentic applications by @baalimago in #70
- feat: Add support for grok by @baalimago in #71
- feat: Added support for Gemini models by @baalimago in #72
- fix: Mcp server issues should now be mostly resolved by @baalimago in #73
- feat:
clai chat listupgrade - Edit + Delete messages in chat by @baalimago in #75 - feat: Gemini flash image support by @baalimago in #77
- aigen: Lots of egoboost unittests by @baalimago in #78
- fix: Ensure
ollama:deepseektargets ollama, not deepseek SaaS by @baalimago in #76 - feat: Edit prompt in editor by @baalimago in #79
- feat: Pipe b64 encoded images to omni-models by @baalimago in #80
- feat: Gemini 3 pro preview support by @baalimago in #81
- fix: Made streaming stop-management more robust by @baalimago in #82
- feat: Sora-2 video generation + video subcomand by @baalimago in #83
- feat: Built-in tools for pwd and date by @baalimago in #85
- fix: Mixtral LLMaaS now work again by @baalimago in #84
- feat: Clai as tool (recursive agents) by @baalimago in #86
Full Changelog: v1.8.0...v1.9.0
v1.8.8
Further stabilizations, fixed edgecase where post processing wouldn't work.
Full Changelog: v1.8.7...v1.8.8