chain.sh

Tools for
coding agents.

Research, code navigation, memory, and tasks. Four open-source tools for the work you do with agents.

Use one on its own, or bring them into the same workflow.

Explore the tools
Agent

When the agent needs…

the right documentation

ketch finds the web pages and docs.

Go · MIT

Choose what you need.

One task, a few tools.

Research an approach, trace the code, keep the decision, and leave a clear next step.

Swapping the per-file parser cache in cymbal

  1. ketch

    Read up before touching anything.

    View captured output for ketch
    $ ketch search "tree-sitter incremental parsing cache invalidation"
    ---
    query: tree-sitter incremental parsing cache invalidation
    backend: brave
    result_count: 5
    ---
    GitHub - tree-sitter/tree-sitter: An incremental parsing system
      https://github.com/tree-sitter/tree-sitter
      Tree-sitter is a parser generator tool and an incremental parsing
      library. It can build a concrete syntax tree for a source file and
      efficiently update the syntax tree as the source file is edited.
      …
  2. cymbal

    Find out what the change would actually touch.

    View captured output for cymbal
    $ cymbal impact TreeSitter
    ---
    symbol: TreeSitter
    depth: 2
    total_callers: 50 (0 production, 50 test)
    metrics: 80 (2 production, 78 test) refs in 5 (1 production, 4 test) files
    ---
    # depth 1
    parser/implements_test.go:32:
        	t.Helper()
      > 	tsLang := lang.Default.TreeSitter(language)
        	if tsLang == nil {
      …
  3. recoil

    Pull in what the project already documents, then record the call.

    View captured output for recoil
    $ recoil mine . --dry-run
    ---
    scope: project
    files_scanned: 14
    files_skipped: 155
    chunks: 6
    ---
    
    $ recoil decide --claim-key parser-cache \
        "the cache stays bounded by bytes, not entry count"
    ---
    id: mem_utrhz7q64gefyb2d3xpzanlwsi
    role: decision
    claim_key: parser-cache
    validity: active
    ---
  4. brainfile

    Write the next step down where the next session will find it.

    View captured output for brainfile
    $ brainfile add --title "Swap the per-file parser cache"
    Task added successfully!
    
      ID:       task-1
      Title:    Swap the per-file parser cache
      Column:   To Do

Every command here was run and every line of output is verbatim. Long blocks are cut at a marked ellipsis; nothing is reworded.

Run the chain ecosystem.

One skill, and your agent knows the whole chain: which tool answers which question, in what order, what to write back, and how to install what is missing.

npx skills add 1broseidon/skills --skill chain

Installs with the skills CLI (opens in a new tab) into the agents you already use.

Or start with what you need.

Follow the guide, or let your agent help with setup.

Set up ketch

Search the web, read documentation, and bring useful research back to your agent.

Follow the guide for installation and first steps.

Set up cymbal

Find your way through a codebase and understand what a change will affect.

Follow the guide for installation and first steps.

Set up recoil

Read the docs you already wrote into local memory, and keep the decisions made against them.

Follow the guide for installation and first steps.

Set up brainfile

Keep tasks, plans, and progress in Markdown that you and your agents can share.

Follow the guide for installation and first steps.