Skip to content

v2.0.0

Choose a tag to compare

@github-actions github-actions released this 08 Jul 22:39

Kaimon v2.0.0

Diff since v1.3.1

Kaimon gives an AI agent a live Julia REPL over MCP: run code, introspect types
and methods, drive the debugger, run tests, and search code against the running
session. 2.0 reworks search and the session model, changes how agents connect,
and splits the gate into its own lightweight package.

Breaking changes

This is a major, breaking release — the highlights below are the full changelog,
but the changes most likely to affect an existing setup are:

  • qdrant_search_code is renamed to search_code (now backend-agnostic and
    hybrid by default). Update anything that referenced the old tool name.
  • The default tool surface is tightened (~68 → ~49 tools); several advanced
    tools are now gated off by default and must be explicitly enabled per project.

A standalone gate: KaimonGate

The session and eval machinery now lives in KaimonGate, a separate package with a
small, tightly constrained dependency set. It is easy to add to your own project
or session without pulling in all of Kaimon, and spawned agent sessions boot it
instead of full Kaimon, so a session never recompiles Kaimon against your project.

Search

  • grep_code is a native MCP grep: an exact pattern or regex over the live
    working tree that returns the enclosing function or struct for each hit. It is a
    safer, clearer alternative to the piped grep/awk/sed bash commands models
    otherwise reach for, and much easier to read when you are watching what the
    agent runs. It is confined to the project scope by default.
  • search_code finds code by meaning, now fusing vector similarity with a local
    SQLite FTS5 index, so results hold up whether you describe the behavior or
    remember an exact identifier.
  • Both are repo scoped, respect .gitignore, and take opt-in metadata filters.
    grep_code can include logs and generated files on request.

Sessions

Agents bind to the right gate from their workspace root, start_session reuses a
running gate instead of spawning a duplicate, and a new project is approved from a
prompt inside your client instead of by editing JSON (allow_any_project covers
container and VM setups).

Long work that does not block

Any eval past about thirty seconds becomes a background job with progress and
cancellation, and it survives a restart.

Agent backends

The supported agent is Claude today, built to speak ACP so other agents can plug
in soon. New and still experimental: local model backends (MLX and an in-process
Ollama loop) for keeping inference on your own machine.

CURVE encryption, and a path to TachiRei

The gate transport can run CURVE encrypted over ZMQ, with key management and a
trust store in the TUI, which opens up secure connectivity across a network. It
also lays the groundwork for TachiRei.jl, a platform for persistent remote Julia
sessions and applications that people and multiple agents can connect to at once
(coming soon).

KaimonSlate

A browser-based notebook (a "slate") built on Kaimon's extension system, where you
and an agent build and run cells in the same document, with doc search and PDF
export. It ships separately as
KaimonSlate.jl.

Windows and headless

Windows support: the gate uses TCP in place of IPC. Headless parity: the same
analytics, indexing, housekeeping, and clean shutdown as the TUI.

Stability and performance

The ZMQ transport was rewritten (persistent DEALER/ROUTER, event driven messaging,
adaptive timeouts), lowering reply latency and idle CPU, and a broad pass closed a
long list of stability issues from the 1.x line.


Thanks

To the contributors who shipped code in this release:

  • @KristianHolme — Wayland clipboard support (#1) and Cursor / opencode client support (#2)
  • @haakon-e — manual gate restart from the REPL and TUI (#17), and the detailed Infiltrator report behind #34

And to everyone whose issue reports shaped 2.0: @jonalm (#55), @Eben60 (#56),
@ufechner7 (#36, #37), @mind6 (#41), @csvance (#42, #46), @jeffwack (#47),
@brendanjohnharris (#50), and @1-Bart-1 (#51).

Closed issues:

  • Split Gate into minimal standalone package (KaimonGate.jl) (#20)
  • custom server port not respected (#27)
  • Suggestion: add kaimon_connect command (#28)
  • kaimon crash report (#29)
  • Infiltrator still rerouted/hangs after Gate.stop (#34)
  • Stale session JSON survives MCP-shim restart, silently breaks ex (PUB port mismatch) (#35)
  • Improve documentation for usage with VSCode (#36)
  • Search index not persistent (#37)
  • Step-by-step installation, use and removal? (#39)
  • Kaimon cache path w/ XDG_CACHE_HOME handling inconsistent (#42)
  • Managed session log file is never written (#43)
  • Should lax mode disable the project check? (#46)
  • Spawned session subprocess can't recompile Kaimon when target project's manifest invalidates the precompile cache (#47)
  • Kaimon crashes on startup on Windows (opening file "/dev/tty") (#49)
  • mutation testing gate (#52)
  • Lazy user (#53)