• v2.0.3 e7b8e4ff09

    v2.0.3 Stable

    github-actions[bot] released this 2026-07-10 23:59:15 -07:00 | 33 commits to main since this release

    Kaimon v2.0.3

    Diff since v2.0.2

    • Auto-background threshold for long evals is now configurable (Config tab or KAIMON_GATE_PROMOTE_AFTER; 0 = never), and a promoted eval's finished result is now shown in the Activity tab instead of the placeholder (#59)
    • Write the Antigravity MCP config where current builds read it — ~/.gemini/config/mcp.json (also keeping the legacy path) (#57)
    • Extension log viewer no longer freezes the TUI (and MCP server) on large logs; extension logs are now size-capped
    • Fix reattaching to a detached remote worker (a stale connection could block reconnect)
    Downloads
  • v2.0.2 f32c630d16

    v2.0.2 Stable

    github-actions[bot] released this 2026-07-09 23:49:31 -07:00 | 39 commits to main since this release

    Kaimon v2.0.2

    Diff since v2.0.1

    Minor bug fixes and agent-facing output-format tweaks.

    Downloads
  • v2.0.1 cd113e5ad4

    v2.0.1 Stable

    github-actions[bot] released this 2026-07-09 14:30:48 -07:00 | 45 commits to main since this release

    Kaimon v2.0.1

    Diff since v2.0.0

    Kaimon v2.0.1 — MCP server→client delivery reliability

    Fixed

    • Elicitation prompts no longer silently time out. grep_code path-consent and start_session project-consent prompts were delivered to a single receive-stream outbox keyed by the caller's POST session id. Clients such as Claude Code present a different Mcp-Session-Id on their GET receive stream than on tool-call POSTs, so the targeted outbox was empty and the request no-op'd — an immediate "no answer" with no prompt shown. Delivery now targets the caller's own stream, else any open receive stream, else the in-flight tool-call SSE stream.
    • tools/list_changed is re-delivered on every change. The persistent GET receive stream deduped notifications by method name for its entire lifetime, so a re-queued tools/list_changed (e.g. after each extension restart) was suppressed forever — forcing a manual reconnect. Notifications now carry a monotonic sequence and consumers track a per-session cursor, so every re-queue is delivered; the board is no longer drained, so a POST flush can't steal a notification from a concurrent GET stream.

    Changed

    • run_tests honors |-separated OR patterns: pattern="a|b" runs testsets matching either, by splitting into a ReTest disjunction array (a bare string was matched literally before).

    Closed issues:

    • Can Kaimon ping claude? (#30)
    • Excessive memory consumption (#33)
    • Windows: ZMQ ipc:// transport not supported — TUI fails to start after /dev/tty fix (#41)
    • Orphaned Gate.serve() REPLs are never reaped — multi-GB leak under headless server (#51)
    • claude code bug report (#55)
    • Kaimon / GLMakie interaction problems (#56)
    Downloads
  • v2.0.0 a378fde174

    v2.0.0 Stable

    github-actions[bot] released this 2026-07-08 15:39:36 -07:00 | 50 commits to main since this release

    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.

    • 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)
    Downloads
  • KaimonGate-v1.0.1 5e1c838520

    github-actions[bot] released this 2026-07-08 13:08:47 -07:00 | 52 commits to main since this release

    KaimonGate KaimonGate-v1.0.1

    Diff since KaimonGate-v1.0.0

    Downloads
  • KaimonGate-v1.0.0 0299afd15d

    github-actions[bot] released this 2026-07-07 18:22:03 -07:00 | 56 commits to main since this release

    KaimonGate KaimonGate-v1.0.0

    First release of KaimonGate, part of the upcoming Kaimon 2.0 release.

    KaimonGate is the lightweight eval gate that runs inside a Julia session so the Kaimon MCP server can execute, debug, and introspect code. It depends only on ZMQ and the standard library, so splitting it out of Kaimon greatly reduces the dependency footprint required for Gate sessions — a session can connect without pulling in the full Kaimon dependency tree, which matters most on remote/compute nodes.

    Merged pull requests:

    • Add Wayland clipboard support using wl-copy/wl-paste (#1) (@KristianHolme)
    • Add cursor and opencode support (#2) (@KristianHolme)
    • Add description and keywords to Project.toml (#4) (@Copilot)
    • Fix #6: world age error when displaying values from newly loaded packages (#8) (@kahliburke)
    • feat: manually restart gate from REPL and TUI (#17) (@haakon-e)

    Closed issues:

    • Please add a description (#3)
    • Occasional segfault (#5)
    • Garbled response from Symbolics.jl variables (#6)
    • Claude sees no response (#10)
    • Kaimon is crashing when plotting (#11)
    • Proposal: Reduce namespace pollution by unexporting identifiers (breaking change) (#13)
    • ex tool should return stderr/errors to MCP client (#14)
    • search indexing collection manager + search usage questions (#15)
    • Manual REPL restart from the TUI or REPL (#16)
    • Antigravity config (#18)
    • Don't ask adding Kaimon to global env (#19)
    • Split Gate into minimal standalone package (KaimonGate.jl) (#20)
    • ex async evals can't load/use GLMakie — GLFW requires thread 1, but Threads.@spawn lands on default pool (#21)
    • TagBot trigger issue (#22)
    • Does "Remote Control" by jeandeaual really exist? (#25)
    • Version compatibility check between kaimon app and Kaimon.jl package (#26)
    • 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)
    Downloads
  • v1.3.1 ec8c0f516e

    v1.3.1 Stable

    kahliburke released this 2026-04-16 03:02:38 -07:00 | 285 commits to main since this release

    Fix: custom port from config.json respected by TUI (#27)

    The TUI entry point was ignoring the port field in ~/.config/kaimon/config.json, always using the default 2828 unless --port was passed on the command line. The headless path already did the right thing — the TUI now matches.

    Priority: CLI --port > config.json port field > default 2828.

    Install

    ]app add Kaimon@1.3.1
    

    Full Changelog: https://github.com/kahliburke/Kaimon.jl/compare/v1.3.0...v1.3.1

    Downloads
  • v1.3.0 a6aecb1b39

    v1.3.0 Stable

    kahliburke released this 2026-04-15 18:31:45 -07:00 | 288 commits to main since this release

    What's New

    Main-thread eval for GLMakie/GLFW (#21)

    The ex tool now supports mt=true to route evals through the REPL backend on thread 1. Required for GLMakie, GLFW, and any library that needs the main thread.

    ex(e="using GLMakie; scatter([1,2,3], [4,5,6])", mt=true)
    

    Version compatibility check (#26)

    Gate sessions now report their Kaimon version in health check pongs. The TUI warns when a session loads a mismatched version — catches the case where a stale dev'd copy in the global env causes silent serialization failures. The app startup also checks for version/path mismatches.

    VS Code integration fix (#25)

    Kaimon ships its own VS Code Remote Control extension — no third-party extension needed. Install from the TUI Config tab (v) or Kaimon.install_vscode_remote_control(). Fixed list_vscode_commands (was calling an undefined function). Extension installs globally without requiring a project.

    Tool call tracking

    The total_tool_calls counter and sparkline in the TUI status bar now actually work (were always showing 0).

    server_log performance

    The server_log tool now reads from an in-memory ring buffer instead of scanning the full log file on disk. Also added log rotation at 10MB.

    Docs

    • Fixed tab table (added Debug, Extensions tabs)
    • Updated tool count (50+)
    • Fixed api_keys format in configuration docs
    • Updated install instructions to use registry

    Install

    ]app add Kaimon@1.3.0
    

    Full Changelog: https://github.com/kahliburke/Kaimon.jl/compare/v1.2.2...v1.3.0

    Downloads
  • v1.2.2 a00a75d105

    v1.2.2 Stable

    kahliburke released this 2026-04-12 09:43:24 -07:00 | 296 commits to main since this release

    Main-thread eval for GLMakie/GLFW (#21)

    The ex MCP tool now supports mt=true (main-thread mode), which routes evals through the REPL backend on thread 1. This is required for GLMakie, GLFW, and any library that needs the main thread for OpenGL/GPU calls.

    Usage

    ex(e="using GLMakie; GLMakie.activate!()", mt=true)
    ex(e="fig = Figure(); scatter(fig[1,1], [1,2,3], [4,5,6]); display(fig)", mt=true)
    

    Without mt=true, async evals run on default-pool threads, causing ThreadAssertionError. With mt=true, the gate spawns the eval on the interactive pool, and gate_eval routes through REPL.call_on_backend to execute on thread 1.

    Install

    ]app add Kaimon@1.2.2
    

    Full Changelog: https://github.com/kahliburke/Kaimon.jl/compare/v1.2.1...v1.2.2

    Downloads
  • v1.2.1 48df2eebb9

    v1.2.1 Stable

    kahliburke released this 2026-04-07 16:37:05 -07:00 | 298 commits to main since this release

    Bugfix release.

    What's Changed

    • Dismissible global env prompt (#19) — The "Add Kaimon to your global Julia environment?" prompt on startup now offers [Y/n/never]. Choosing "never" persists the choice in ~/.config/kaimon/config.json so you won't be asked again. Re-enable with kaimon --reset-global-prompt.

      The prompt text also now mentions alternatives (Julia 1.12 workspaces, ShareAdd.jl, per-project deps) for users who prefer to keep their global environment minimal.

    Thanks @Eben60 for the report.

    Install

    ]app add https://github.com/kahliburke/Kaimon.jl#v1.2.1
    
    Downloads