e097e53a8527e51a601d2ff0af14478cd1ba2b6e
A node's color now flows down the lines to its children, mind-map style: Watering's teal colors the lines to Rain barrel and Drip line. It used to color the line from the root down to Watering itself, which also left the shared bus of a parent's branches in whichever child's color was drawn last. Branches follow their parent by default, and stay dim when the parent has no color. Co-Authored-By: Claude Opus 5.5 <[email protected]>
cumulus
Brainstorm in the terminal: ideas as nodes on a 2D canvas, connected, folded and color-coded, across as many documents as you like. Vim keys first; the mouse works too. Runs on Windows and Linux.
Status: being built, one stage at a time. See DESIGN.md for the plan; this README grows with the app.
Build and run
You need Rust (rustup.rs). The exact version is pinned in
rust-toolchain.toml, and rustup installs it by itself the first time.
cargo build --release
The program is target/release/cumulus (cumulus.exe on Windows): copy it to
a folder on your PATH.
- Windows: nothing else to install. The
.execarries its own C runtime and runs on any Windows 10 or 11. - Linux (Void, Fedora…): build the same way. You can also build a static
Linux binary from Windows with
cargo linux: it lands intarget/x86_64-unknown-linux-musl/release/cumulusand runs on any distribution.
Keys
The plan for the everyday keys (all of them are in DESIGN.md):
| Keys | What they do |
|---|---|
hjkl |
move to the nearest node that way |
gh gj gk gl |
parent, next sibling, previous sibling, first child |
o O a |
new sibling below / above, new child |
i or Enter |
edit the title |
dd x |
delete the branch / just the node |
u Ctrl-r |
undo / redo |
za zf zi |
fold, auto-fold, focus |
+ - |
zoom in / out |
C M v |
connect, move, select |
<Space> |
the action menu |
: ? |
command line, help |
After the first key of a sequence (g, z, d, <Space>…), a popup lists
what can follow.
Development
cargo test # run the tests
cargo lint # clippy, treating warnings as errors
cargo fmt # format the code
While the app is being built, the examples try out each part:
cargo run --example canvas # the canvas, on a sample document
cargo test show_canvas -- --ignored --nocapture # print it at each zoom, as text
Languages
Rust
100%