The fastest way
to review code.

AI writes the code now. Rip helps humans keep up. Files open instantly, search responds as you type, diffs stay readable, and Markdown renders live.

Download for Mac Purchase$29.99$19.99
Launch price, limited time · Free 60-day trial · macOS 13+ · Linux x86_64 & arm64
rocket-launch
rocket-launch
.github
assets
cmd
dashboard
docs
scripts
src
tools
.gitignore
Cargo.toml
go.mod
mission.toml
README.md
Pull Requests
#1 Abort ladder: name the abo…
Abort ladder: name the abort mode and print its safing sequence #1
SplitFilesSymbolsRenderedCheckoutReview
bflowers wants to merge feature/abort-sequence into main · 3 files · +72 −6 · updated today 02:24
2 passed
RUNBOOK.mddocs+11−0
main.rssrc+1−0
sequencer.rssrc+60−6
Inside the auto-abort window the sequencer used to stop with a bare reason string. Operators then had to look up the safing sequence in the runbook while the pad crew waited on the loop.
Each redline now maps to an AbortMode, and the abort prints the safing steps for that mode. Holds can be released from the console with release_hold.
Map redlines to abort modes
Print safing on abort
Wire release_hold to the console command
Runbook review by the pad lead
Warning
The safing strings are duplicated in the runbook table; keep them in sync until they are generated.
docs/RUNBOOK.md+11−0Viewed
Rendered · 3 changed blocks · m for source
Launch day runbook
Read before T-30
Every step below is a console step. Pad steps are in the pad crew's own book and are not repeated here.
T-30:00 · Poll
1.Run ground-control status. All rows must read GO.
2.If range is NO-GO, stop. Do not enter the terminal count.
main
Psst… this is really how it looks.
200k lines
in 41ms
Diffs you can
actually read
Built-in
PR review
Live Markdown
& Mermaid
Multiple
cursors
Split
panes
Branches and
worktrees
Configurable
hotkeys
Your whole
PR queue
See what agents
changed
Inline PR
comments
Paste errors.
Jump to code.
Download for Mac

Markdown that looks finished.

Rip renders callouts, tables, task lists, fenced code, and Mermaid diagrams inline.

docs
docs
notes
ARCHITECTURE.md
PLAN.md
RUNBOOK.md
RUNBOOK.md
Edit
Launch day runbook
Read before T-30
Every step below is a console step. Pad steps are in the pad crew's own book and are not repeated here.
T-30:00 · Poll
1.Run ground-control status. All rows must read GO.
2.If range is NO-GO, stop. Do not enter the terminal count.
3.Confirm the weather balloon report is under 20 minutes old.
T-10:00 · Terminal count
cargo run --release --bin sequencer -- --mission mission.tomlsh
The sequencer prints one line per second. Watch for HOLD.
Auto-abort window
Inside T-10 the sequencer will abort instead of holding on a redline. There is no operator action that stops this, by design.
Holds
Hold point
Who releases
Typical cause
T-30:00
flight
range or weather
T-10:00
flight
propellant temperatures
T-01:00
pad
ullage pressure settling
main

Plans that know what shipped.

Drop a commit SHA or PR into Markdown. Rip links it and pulls in its live status.

docs
docs
notes
ARCHITECTURE.md
PLAN.md
RUNBOOK.md
PLAN.md
Edit
KST-3 plan
Working list for the third Kestrel flight. Check things off here; the commit and PR references tell you whether the work actually landed.
Landed
Sequencer core with holds and redlines e526e91e526e91 mergedBootstrap Kestrel launch control: sequencer core and README
Ground-control poll in parallel, see commit 9a3ba2b9a3ba2b mergedAdd ground-control CLI: parallel go/no-go poll
Dashboard rolling channels fbcc8e9fbcc8e9 mergedDashboard: rolling telemetry channels and downlink replay
Runbook and mission notes 9547dbd9547dbd mergedDocs: architecture, runbook, and mission notes
gps_alt documented as ellipsoid height #2#2 mergedTelemetry: say which altitude gps_alt is
In flight
Abort ladder with named modes and safing #1#1 openAbort ladder: name the abort mode and print its safing sequence
Delta-encoded archives #3#3 draftTelemetry: delta encoding for archived frames
Replay mode for the dashboard 0badc0d0badc0d not found
Validate Hohmann numbers against the range's tool
Before the window
FTS certification letter from range safety
Weather balloon cadence agreed with the met office
Dry run of the Runbook with the pad crew
main

Search the whole project. Instantly.

Rip groups matches by file, shows them in context, and refreshes results as you type. No index. No waiting.

rocket-launch
rocket-launch
.github
assets
cmd
dashboard
docs
scripts
src
tools
.gitignore
Cargo.toml
go.mod
mission.toml
README.md
Search
redline
Aaab.*13 matches in 6 files
ARCHITECTURE.mddocs3
19Seq->>Seq: redline check
27The count is a small state machine. Holds are automatic on a redline and
43The redlines live next to the state machine so that a reviewer sees both at
PLAN.mddocs1
8- [x] Sequencer core with holds and redlines `e526e91`
RUNBOOK.mddocs2
22> Inside T-10 the sequencer will **abort** instead of holding on a redline.
32| T-00:10 | nobody | redline here is an abort |
Abort Modes.mddocs/notes2
9Counting --> Hold: redline before T-10
11Counting --> Abort: redline inside T-10
Telemetry.mddocs/notes1
25## Redlines
sequencer.rssrc4
4//! automatically when a redline trips and released by the operator.
78/// Redlines checked every second of the terminal count.
119if let Some(reason) = self.redline(frame) {
143fn redline(&self, frame: &Frame) -> Option<String> {
main

Your colors.

Start with our Pitch Black theme or another bundled palette. Every theme lives in a plain file. Write your own or import one you already love.

docs
ARCHITECTURE.md
Preview: ARCHITECTURE.md
1# Architecture
2
3Four programs, one manifest. Everything reads
4`mission.toml`; nothing writes it during a count.
5
6```mermaid
7sequenceDiagram
8 participant Op as Operator
9 participant GC as ground-control
10 participant Seq as sequencer
11 Op->>GC: status
12 GC->>Seq: start terminal count
13 loop every second
14 Seq->>Seq: redline check
15 Seq-->>GC: phase + count
16 end
17```
18
19## The sequencer
20
21The count is a small state machine. Holds are
22automatic on a redline and released by the operator.
23
24```rust file=src/sequencer.rs lines=10-18
25#[derive(Clone, Debug, PartialEq)]
26pub enum Phase {
27 PadIdle,
28 PropellantLoad,
29 Hold { at: i64, reason: String },
30}
Architecture
Four programs, one manifest. Everything reads mission.toml; nothing writes it during a count.
Operator
ground-control
sequencer
Operator
ground-control
sequencer
status
start terminal count
phase + count
LOOP
The sequencer
The count is a small state machine. Holds are automatic on a redline and released by the operator.
src/sequencer.rs:10-18rust
#[derive(Clone, Debug, PartialEq)] pub enum Phase { PadIdle, PropellantLoad, Hold { at: i64, reason: String }, }
mainLn 1, Col 1Spaces: 2Markdown

All your settings. One file.

Rip stores hotkeys, theme, and behavior as plain text. Keep the settings file in your dotfiles and sync it across machines.

# ~/.config/rip/config
theme = "graphite"
font-family = "Berkeley Mono"
font-size = 13
markdown.preview = split
diff.layout = side-by-side
keybind = cmd+k>cmd+b : branch.switch
keybind = cmd+shift+d : review.next_change
keybind = cmd+enter : review.approve