Agents Comparisons

Opencode

  • Pros:
    • Javascript based. The nix closure is not so large: 186MB!
  • Cons:
    • Javascript based. The memory consumption of open a new opencode instance: ~500MB
    • Use Esc instead of Ctrl-C to interrupt.
  • Summary: Its quality is not comparable to neovim, though it declares "OpenCode is built by neovim users ...".

Crush

  • Pros:
    • Go lang based.
      • Small nix-closure.
      • Small memory consumption: crush instance that have several conversations: ~70MB
  • Cons:
    • It's Ok for me now Token inefficiency: 300 line system prompt and cannot fully customize, only supports system prompt prefix.
    • The input line support Home, End key, but does not support Ctrl+Left/Right.
    • It's Ok for me now Does not support terminal scrollback.
    • It's Ok for me now Notification cannot click and jump to the corresponding terminal.
    • I need auto generating skill, so this is unnecessary now Does not support explicit skill: https://github.com/charmbracelet/crush/discussions/2505 and no discussions!
    • Generate .crush/ in every folder where crush launched

Aider

  • Pros:
    • Support script
    • Token efficiency
      • Test Prompt: Introduce yourself
        • Aider: 2.3k
        • Crush: 15K
    • Native input line support: scrollback, Ctrl-Left/Right, ...
  • Cons:
    • Python based, large codebase: nix closure > 2GB
    • Does not support skill, memory.
    • Models are out of date, e.g.: minimax 2.5, while latest is 2.7

Codex

  • Cons:
    • Latest verions only support wire_api = "responses", does not support completion. So does not support deepseek, minimax, .... Fine!
    • 603k source lines of rust, a pile of xxxx.

Code (Codex Fork)

  • Pros:
    • Support wire_api = "chat"
  • Cons:
    • A fork that always needs to rebase.

Forgecode

  • Pros:
    • Moved to AAIF at Linux Foundation: more stable, more reliable
  • Cons:
    • Claims being #1. Really?
    • Fixed: The global local is /forge/, really!? I doubt the project's taste of tech.
    • Does not support prompt injection, e.g. hook scripts.
      • The pull request is stale
        • https://github.com/tailcallhq/forgecode/issues/2562
        • https://github.com/tailcallhq/forgecode/pull/2757
    • Does not support ACP, and the pull request is stale.

Goose

  • Cons:
    • Fixed: Why goose does not saved in nix binary cache, and 1.23.2 cannot build in x86-64 Linux: checkPhase failed!? Why the compiling time so long 7min+?
    • Fixed: Why the output color render bug remain unsolved? VERY IMPORTANT: Oh, I guess this project focus on desktop, instead of cli.
    • zsh cursor sometimes disappear?
    • goose configure cannot configure kimi, minimax succussfully, only by manually add a costum_xxx.json
    • minimax is still 2.5
      • https://github.com/aaif-goose/goose/pull/7981
    • cannot switch model during conversation
      • https://github.com/aaif-goose/goose/pull/8747
    • the context length is wrong
      • goose/2026-05-13-custom-provider-context-limit-bug.md

Hermes

  • Cons:
    • Declare able to self-improvement (auto skill generating), but does not support per-project skill yet!? https://github.com/NousResearch/hermes-agent/issues/4667 In my humble opinion, a auto-generating-skill skill is enough!
    • Why CLI+TUI? Why not unify them? split experience, split community?
      • TUI
        • scroll glitch
        • does not filter configured providers/models when selecting them, however CLI does.
      • CLI
        • resize => re-render
        • resume does not support selection UI, but TUI does.
    • Too many bugs that influence my experience, see my patches.

Clients Comparisons

pi

  • Pros:
    • minimalist
  • Cons:
    • minimalist: lack of many features
      • lack of high-quality plugins such as memory, plan, subagents.
    • typescript-based

pi_agent_rust

  • Cons:
    • Single developer, thus less reliable.

nvim

Avante.nvim

  • Pros:
    • Leverages Neovim muscle memory
  • Cons:
    • No skills support
    • Uses plenary.nvim (curl without keepalive or auto-retry)
      • Frequent network issues cause interruptions that disrupt workflow

Codecompanion.nvim

  • Pros:
    • Leverages Neovim muscle memory
    • Minimal/Clean UI
  • Cons:
    • Use plenary.nvim, the same to Avante.nvim.

Agentic.nvim

  • Pros:
    • simple and only cares about ACP
  • Cons:
    • does not support any ACP capabilities, including fs.readTextFile, fs.writeTextFile, terminal. And it does not mentioned not support above ACP capabilities in doc.
    • Bugs:
      • when enter slash command like /skill, there is high, narrow auto completion floating window.
      • Cannot disable insert by default
      • Cannot hide winbar (need to edit source code)

Codecompanion

  • Pros:
    • simple UI!
    • Support more ACP capabilities than Agentic.nvim: fs.readTextFile, fs.writeTextFile And it explicitly state support of ACP capabilities in doc!