Install
This page installs rb, checks it, and runs the one-minute tour.
rb needs Python 3.10 or later. The package is rabbit-brain and the command is rb. Each release has wheels for Linux (x86_64 and aarch64), macOS (Apple Silicon and Intel) and Windows (x86_64), each with the rb binary, the Python SDK and the terminal screen, so installing needs no compiler.
On Windows, rb 0.8.0 is still a preview: issue #2 lists its known issues, such as updating through uv. Claude Code runs rb’s session hook there in Git Bash; without Git Bash the hook fails, the session goes on, and rb does not look.
In a project’s environment, which also lets you import rabbit_brain there:
pip install rabbit-brainAs a tool, in an environment of its own:
uv tool install rabbit-brainRun it once without installing anything:
uvx --from rabbit-brain rb tourAfter uvx, rb is not on your path: run the next commands as uvx --from rabbit-brain rb <command>, or keep rb with uv tool install rabbit-brain.
Check it:
$ rb --versionrabbit-brain 0.8.0Take the tour
Section titled “Take the tour”rb tour builds a small real project in ./rb-tour and runs the whole loop: a question, an experiment with its settings and criteria, a freeze, three runs, and rb status. Every command is shown with its real output. It begins like this:
$ rb tour
$ rb init 'Dropout on a tiny MLP'Project 'dropout-on-a-tiny-mlp' started: ~/try-rb/rb-tour/.rbRabbit Brain YAML files beside the code: commit .rb/ with it, so the record travels with the work.
For the agents here: No agent's instructions here yet. rb skill add puts rb's for one: --claude (Claude Code), --agents-md (Codex and others), --cursor
Then paste this line into your agent's chat: Use Rabbit Brain to track this: read rb context, then record where the work stands.
$ rb question add 'Can we use dropout 0.1 within our loss and step-time budgets?' --id q1q1: Can we use dropout 0.1 within our loss and step-time budgets?
Next: rb experiment add "<what would answer it>" -q q1 --hypothesis "<what you expect>"
$ rb experiment add 'dropout 0.1 vs none' --id drop -q q1 --hypothesis 'Dropout 0.1 lowers val_loss' -m 'less co-adaptation' --baseline none --candidate p01 --varies dropout --note 'assumes the validation split stayed fixed'Experiment drop: dropout 0.1 vs none · none (baseline) vs p01 (candidate) · varies dropout · under q1 hypothesis: Dropout 0.1 lowers val_loss (why: less co-adaptation) Planned: nothing in the record tests it yet, and it shows as a planned direction until its first run or analysis. Made 2 variants: none (baseline), p01 (candidate); a setting of one is rb spec set drop none.<setting> <value>. drop declares it varies dropout, but no variant has a value for it yet; give each variant its own: rb spec set drop <variant>.dropout <value> --source <file#key>… (134 more lines)rb-tour/ is an ordinary record afterwards: cd rb-tour, then rb ui for the screen in your terminal or rb open for the same record in your browser.
Updates
Section titled “Updates”- Installed as a tool (
uv tool install, orpipx install): at most once a day, rb asks PyPI for the newest release and, when it is newer, upgrades through the same installer. The next command runs the new rb. - Installed with pip: rb never touches that environment. At most once a day it says one line on standard error when a newer rb is out, with the
pip install -U rabbit-brainthat gets it.
Neither runs in CI, in an agent session, with DO_NOT_TRACK set, with RB_AUTO_UPDATE=0, or after rb config auto-update off. The check carries nothing about you.
A team on two versions
Section titled “A team on two versions”rb 0.7.0 and 0.7.1 read format 1 only, and rb 0.8.0 writes format 2 only in the file of a rule that uses a count, a best of N, a relative change or a cited difference of means.
-
A record with no format-2 file: 0.7.0 and 0.7.1 read what 0.8.0 writes with no part they do not know, and write to it as before. Their readings differ from 0.8.0’s in one place, and 0.7.0’s in two more:
- an
--eachrule beside an analysis of its comparison is read from the analysis in 0.7.0 and 0.7.1, and from its runs in 0.8.0; - on an experiment with one variant, 0.7.0 finds no number for a rule over a number recorded with no variant;
- on an experiment with
population.repeat, 0.7.0 reads the runs as if no repeat were declared.
A call made on such a reading in one version reads “made on an earlier reading” in the other.
- an
-
A record with a format-2 file: in 0.7.0 and 0.7.1,
rb doctornames each such file,rb statuscounts them, and both say to upgrade (pip install --upgrade rabbit-brain). They read every other file and fail every--fail-ongate. They write nothing to the record, and refuse to clone a bundle that holds such a file.
Upgrade everyone who shares a record together.
What rb sends, and when
Section titled “What rb sends, and when”Recording and reading the record need no account and no network. rb makes a network request only when:
- you run
rb clone: it downloads a bundle given as a web address, andgit clones the code the bundle names; - you run
rb login,rb syncorrb logout: they call rabbitbrain.ai, where anyone can make an account, or a hub you name with--huborRB_HUB_URL; - the daily update check above runs;
- you turn on rb’s usage analytics with
rb telemetry enable, in your own terminal. They are off until then, and they never carry research content, paths, command arguments or names.rb telemetry previewshows what would be sent.DO_NOT_TRACK=1orRB_TELEMETRY=0keeps them off.
rb feedback prints a link to a page that shows what it would send before you send it. rb itself sends nothing.
Leaving
Section titled “Leaving”rb remove --dry-run shows what rb remove would take out of the repository, what it would keep, and why. rb remove then takes out only what checks out as rb’s: the record, rb’s instructions for each agent, and its session hook in each agent’s hook file, where every other hook stays. Your research files and git history stay as they were. The command itself goes with pip uninstall rabbit-brain, or uv tool uninstall rabbit-brain.
Rabbit Brainrabbitbrain.ai · GitHub · PyPI · Privacy · Apache-2.0