Skip to content
atomicobjectPublic

About

Repository-native knowledge graph for agents

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

153 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rhizome

Rhizome

Bring Atomic Object's Agentic Engineering process into your repository.

Rhizome gives your team shared skills for defining work, planning implementation, building, and reviewing with AI agents. Specs, decisions, and delivery records live alongside your code, so the next developer or agent can pick up the context.

Start with the Agentic Engineering starter. It installs useful defaults that your team can adapt: how much planning a task needs, which checks prove it works, and when a person needs to make a decision. Small fixes stay small.

The process guide explains how the team works together. Rhizome supplies repository tools and agent guidance to help put that process into practice.

Get started

You'll need a coding agent such as Codex or Claude Code, plus Node.js on its PATH for Rhizome's agent code mode. You can use the basic workflow without provider API keys or Obsidian.

1. Install Rhizome

On a Mac with Apple silicon, install Rhizome Desktop. It includes rzm and keeps both up to date.

brew install --cask atomicobject/tap/rhizome-desktop
open -a Rhizome

Homebrew installs the app and links its bundled rzm into your terminal PATH. The app's separate Install Command-Line Tool step is unnecessary for this installation.

If you already use the CLI-only formula, switch before installing the cask:

brew uninstall --formula atomicobject/tap/rhizome
brew install --cask atomicobject/tap/rhizome-desktop

Without Homebrew, download Rhizome-macos-arm64.dmg, open it, and drag Rhizome to Applications. Open the app, then choose Rhizome > Settings > Install Command-Line Tool. macOS asks for your password once. The link runs the app's rzm until you delete the app.

Or ask your coding agent to install it for you.

For Linux, Intel Macs, or a headless installation, the CLI-only formula remains available:

brew install --formula atomicobject/tap/rhizome

Linux AppImages for Ubuntu 24.04 GNOME (x64 and Arm64) ship with releases, and a Windows 11 x64 build is checked in CI but not yet published; see Rhizome Desktop for their installation and acceptance status. For the Windows CLI or a project-local launcher, follow the installation guide.

2. Initialize your project

From your project's repository root:

rzm init

rzm init shows the docs, code, and agents it found, asks which workflow to install (Agentic Engineering is the default), and sets everything up after one confirmation, then offers to build the search index. If no semantic search key is available, it asks for a Voyage AI key; press Enter to skip that and set it up later. Rhizome adds project configuration, agent skills, and places for specs and delivery work. Commit .rhizome/ and the agent files it creates so teammates use the same guidance. So that sandboxed agents can reach Rhizome on 127.0.0.1 while staying sandboxed, rzm init adds sandbox.network.allowLocalBinding to .claude/settings.json (Claude Code on macOS) and a loopback-only rhizome permission profile to .codex/config.toml, which Codex loads only in trusted projects. What gets installed and how to share it

Atomic Object employees can import shared provider keys from a team 1Password Environment in Rhizome setup or Settings. The import uses the stable 1Password CLI and saves keys on your computer; ordinary use needs no 1Password prompt. Ask the team for the account and Environment ID. Credential setup

A team API gateway provides per-person Google sign-in for the initial Atomic pilot:

  • rzm auth login --server <gateway URL> signs in once for every Rhizome process on your computer.
  • rzm auth status and rzm auth logout manage the session.
  • rzm auth admin lets admins check usage and manage people, sessions, and limits.

Your own provider keys still take precedence. Team API gateway

Admins can read settings with rzm auth admin config --server <gateway URL> and set separate UTC daily provider budgets with --voyage-daily-usd and --typesafe-daily-usd. Each accepts a non-negative USD decimal with up to nine fractional digits; zero disables paid admission for that provider.

Changes must fit the server's startup max_provider_daily_nanodollars ceilings. Raising a ceiling requires an AWS configuration change and deployment before applying the runtime budget. Existing request, byte, credit limits, and paid-call switches also apply. Jev requests use jev-latest. Supported client releases deploy and verify the server from release before uploading client artifacts; ordinary merges to main do not deploy it. See the operations runbook for accounting assumptions and the repository's rhizome-ops skill for previewed, audited settings changes.

When preparing another checkout, run rzm new-worktree <source-worktree-path> from the new worktree. It copies the index and seeds personal view settings once. Each worktree remembers later preference changes independently, and existing personal settings are preserved.

3. Give your agent a task

Open a new coding-agent session in the repository so it discovers the installed skills. Before delegating implementation, put your actual test commands in docs/engineering/quality-gates.md.

Then ask:

Use the agentic-engineering skill to help me add password reset. Start with the intended behavior and the decisions we need to make.

Or, for a clear fix:

Use agentic-engineering implement to fix this bug, verify it, and prepare a pull request.

The skill routes the work according to its size and your team's policy. You can shape an uncertain task together or delegate a bounded task with a clear outcome. Using the skills

Agents can discover query fields and related types in one call: rzm agent ontology-query-schema --type Effort --depth 1, or rzm.ontologyQuerySchema({type: "Effort", depth: 1}) in code mode. Use your vault's type names; --types selects several explicitly. Responses report whole definitions, remaining references, and limits.

Make it your team's process

Start by editing the generated docs/engineering/ documents with your team's test commands, review expectations, architecture rules, and release steps. The skills consult these documents as they work. Keep them in Git so improvements reach the whole team.

As you learn, you can improve the skills, change how specs are organized, and add workflows that fit your project. Adapting your process

Add-ons extend a workflow: rzm init --add-addon compounding adds one that learns from your past agent sessions which facts agents keep rediscovering and what slows them down, and proposes fixes and context for you to approve. --remove-addon takes one out. In a terminal, the rzm init settings menu's Add-ons section (e on a first run, s on a rerun) does the same and offers to turn hooks on for an add-on that uses them. rzm init --hooks on lets add-ons that use agent hooks, such as session memory, deliver their context to Claude Code and Codex automatically. An approved compounding guard rule refuses a matching command before it runs: commit its finding note, rerun rzm init, and in Codex trust the changed entry through /hooks. Add-ons

To change a set-up repository's workflow, add-ons, agents, or search provider, use the repository's tab in Rhizome Desktop's Settings, or the same options with rzm init. In a script, rzm init --check --json --workflow domain --add-addon compounding reports the settings those options would leave and every file they would write, without writing; rzm init --json with the same options applies them and reports what it wrote.

A skill can ship code-mode scripts that gather its context in one step. An agent runs one with rzm agent code execute --session-id <id> --input '{"path": "Projects/Atlas.md"}' < scripts/subject.js, and the script reads that JSON value as input; --input-file <path> reads it from a file instead. To read a view's rows without its field capability catalog, add --omit-capabilities to rzm agent view run. To read which coding agent agent.harness configures without starting any provider, run rzm harness status --configured. To check whether Jev evaluation has a credential without calling it or printing the key, run rzm agent evaluate-batch --check-credentials, which prints {"configured": true|false, "source": ...} and always exits 0.

See and shape the work

rzm start

Rhizome opens a local browser workspace where you can read notes and specs, follow efforts and stories, and use the starter's views. Keep the terminal running while you use it.

Rhizome Desktop keeps your repositories in a sidebar, starts each worktree's Rhizome on its own, and sets up new folders with the version it carries. When a repository pins an older Rhizome, it offers to update the pin; the change is a one-line edit to .rhizome/config.yml that you commit.

Repositories can declare scheduled tasks in .rhizome/tasks/: periodic agent work, such as refreshing agent memory, that runs on each teammate's machine in their own Claude Code or Codex. A free check decides whether the work is needed, and the prompt then runs in the background on a local branch for you to review, or waits in your inbox, as the repository and each person choose. rzm tasks status, rzm tasks inbox, and rzm tasks start <item> manage them, and rzm tasks run --task <task> runs one now, check first. Scheduled tasks

Each starter installs as a module, a folder .rhizome/modules/<name>/ that holds its ontology, query recipes, views, tasks, actions, and scripts. rzm <module> lists a module's query recipes and actions, and rzm <module> <recipe> --<input> <value> runs a recipe; rzm module <name> ... does the same when a built-in command shares the module's name. Rhizome modules

An action is an operation a module declares in actions/<name>.yaml, with typed inputs and a command or code-mode script to run. rzm <module> <action> --<input> <value> runs one (repeat the flag for a list input; a bool input takes true or false), as do custom views through the kit and agents through code mode. Every run requires a trusted repository (rzm trust). It prints the result as JSON and exits 0, prints the reason and exits 2 when the action refuses, and exits 1 on an error. rzm validate actions checks the declarations. Module actions

When the default views stop answering your team's questions, you can adapt them or ask an agent to build a custom view over your project data. Meeting notes, action items, requirements, and other information can become part of the same workspace. Display groups open Briefing, Trace, or Sections views; rzm view eject <id> (for example rzm view eject group.briefing) copies one into .rhizome/views/ so your team can modify it. Adapting the workspace

Install with a coding agent

These steps are written for a coding agent on macOS with Apple silicon. Tell your agent: "Install Rhizome Desktop by following the 'Install with a coding agent' section of https://github.com/atomicobject/rhizome."

Agent instructions:

Prefer the desktop cask when Homebrew is available. If the CLI-only rhizome formula is installed, use the migration commands above. Install atomicobject/tap/rhizome-desktop with --cask, open the app, and verify command -v rzm, its symbolic link into Rhizome.app, and the app/CLI versions. Homebrew manages this CLI link; skip the app's manual CLI setup. Preserve unrelated executables and report any collision instead of forcing an overwrite.

Use the following steps for a direct DMG installation when Homebrew is unavailable:

  1. Stop and tell the user if uname -m is not arm64; follow the installation guide instead. If /Applications/Rhizome.app already exists, skip to step 3: the app updates itself.

  2. Download the notarized app, check it against the release checksums, and copy it into Applications.

    set -euo pipefail
    base=https://github.com/atomicobject/rhizome/releases/latest/download
    tmp=$(mktemp -d)
    curl -fsSL -o "$tmp/Rhizome-macos-arm64.dmg" "$base/Rhizome-macos-arm64.dmg"
    curl -fsSL -o "$tmp/checksums.txt" "$base/checksums.txt"
    (cd "$tmp" && grep ' Rhizome-macos-arm64.dmg$' checksums.txt | shasum -a 256 -c -)
    mkdir "$tmp/mnt"
    hdiutil attach -nobrowse -readonly -mountpoint "$tmp/mnt" "$tmp/Rhizome-macos-arm64.dmg"
    ditto "$tmp/mnt/Rhizome.app" /Applications/Rhizome.app
    hdiutil detach "$tmp/mnt"
    open -a /Applications/Rhizome.app
  3. Ask the user to open Rhizome > Settings and choose Install Command-Line Tool, and to enter their password when macOS asks. Wait for them to confirm. This is the only step that needs them.

  4. Verify in a new login shell. The path should be /usr/local/bin/rzm and the version should match the app's:

    zsh -lc 'command -v rzm && rzm --version'
    defaults read /Applications/Rhizome.app/Contents/Info.plist CFBundleShortVersionString

    If another path comes first, Settings names it; tell the user, for example to run brew uninstall rhizome for a Homebrew copy.

  5. Report the installed version. To set up a repository next, run rzm init from its root, or add the folder in Rhizome.

Go deeper

You want to… Read
Install, join an existing project, or configure optional providers Getting started
Define work, implement a spec, or capture meeting context Using the skills
Change team policy, skills, data, or views Adapting Rhizome
Explore other workflow starters Choosing a starter
Understand retrieval and links between notes and code How Rhizome works
Diagnose slow indexing, runtime failures, degraded operations, or web UI stalls; summarize performance with rzm diagnostics perf Operational diagnostics
Contribute to Rhizome itself Contributor guide

ID suggestions from rzm agent next-id and rzm agent ontology-authoring-guide use the current ontology and shared identifier pool.

For command options, run rzm --help or rzm <command> --help.

Help and contributing

Rhizome is maintained by Atomic Object. Report a bug or suggest an improvement, or read the contributor guide. For vulnerabilities, follow the security policy.

Acknowledgments and license

Rhizome began as a fork of Yakitrak/obsidian-cli by Kartikay Jainwal. Thank you to the original author and contributors.

Rhizome is MIT licensed. Included third-party components retain their own licenses; see third-party notices.

About

Repository-native knowledge graph for agents

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages