A git-backed store for cross-cutting work items
Project description
ruche
A git-backed store for cross-cutting work items.
Status: early reservation release (v0.1.0). Packaging, CI, and the test harness are in place. The commands parse but are not implemented yet; each one exits non-zero with "not yet implemented". Follow the roadmap below.
What it is
ruche keeps work items (issues, tasks, decisions) inside your git repository,
next to the code they concern, instead of in a separate tracker. The store is
plain files committed to git. A derived SQLite + FTS5 index makes reads fast and
is always reconciled to HEAD before an index-backed read, while trust-critical
reads bypass it entirely.
One core, several faces: a Rust library (ruche-core), a command-line tool
(ruche), a Python package on PyPI, and (later) an MCP server.
flowchart TD
core["ruche-core: store, index, merge driver, provenance"]
cli["ruche (CLI)"]
py["Python wheel (PyPI)"]
mcp["ruche-mcp (planned)"]
cli --> core
py --> core
mcp -. planned .-> core
The hive
ruche means "hive" in French. The apian metaphor lives in the concepts and the docs; the commands themselves stay plain English.
| Concept | Term |
|---|---|
| a work item | alvéole (cell) |
| an active item | couvain (brood) |
| closing an item | operculer (to cap a cell) |
| a graduating seed | essaim / essaimer (swarm) |
| the merge gate | les gardiennes (the guard bees) |
| propose, then apply | la danse (the waggle dance) |
Install
Once published:
cargo install ruche # the CLI
pip install ruche # the CLI plus a thin Python binding
Commands
capture, search, board, get, update, note, triage (--apply),
decide (--apply), cap, swarm, context, scope rename, reindex,
doctor, migrate, init, merge-driver.
Roadmap
The intended stack, each piece added when it is built, not before:
gixfor git accessrusqlite+ FTS5 for the derived indexulidfor idsserdeplus a YAML crate for row frontmatterrmcpfor the MCP face (ruche-mcp)PyO3+maturinfor the PyPI wheel (already wired)
Workspace layout
crates/ruche-core: the library (store, index, write path, merge driver, provenance); module seams only for now.crates/ruche: the CLI, built onruche-core.crates/ruche-py: the PyO3/maturin crate that builds the PyPI wheel.
License
Dual-licensed under either of MIT or Apache-2.0, at your option.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ruche-0.1.0.tar.gz.
File metadata
- Download URL: ruche-0.1.0.tar.gz
- Upload date:
- Size: 17.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
49668e46a7495701268579897607182237fec3552d73b17edfe01dbafc08c79a
|
|
| MD5 |
eddcaa69190b221f6b0f2fab6587fe16
|
|
| BLAKE2b-256 |
fc849ce14bffdf83867f05b05e8d04d80a1a04cdd6f2977d7bd52b2bed086c71
|
File details
Details for the file ruche-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl.
File metadata
- Download URL: ruche-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl
- Upload date:
- Size: 427.3 kB
- Tags: CPython 3.10+, macOS 10.12+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1a5f0c23648baf4d3aa1ee14477ceeb42bd6449ee1a2fc955bca81072e366bc0
|
|
| MD5 |
871b1879493a5b0218c405c682d04880
|
|
| BLAKE2b-256 |
862ffd57e4afde1d3f8076dd951a9cd44938cefffbfb569ce214c6aff0f0dcd5
|