Living in the terminal
The guide the command reference is not: what a day at the prompt actually looks like.
rememd ships a CLI that covers the full team workflow without touching the menu bar panel. Same backend the app talks to - just a different wire protocol.
The three access paths
┌─────────────────────────┐
SwiftUI app ────▶│ │
│ Storage protocol │
rememd CLI ────▶│ (local or remote) │
│ │
your agent ──MCP──▶│ │
(rememd └─────────────────────────┘
mcp-server) │
▼
~/Recall/ or Postgres
All three hit identical operations. When the agent claims a task for you, dev B's rememd task claim X, and the app's right-click menu all execute the exact same atomic transaction on the backend.
Dev B's first day, by CLI
# Install (the app writes this, or do it by hand)
sudo cp ~/Downloads/rememd /usr/local/bin/rememd
sudo chmod 755 /usr/local/bin/rememd
# Join the team backend
rememd join 'https://rememd.team.com/join?token=...' --name "Dev B"
# Confirm
rememd me
# → Name: Dev B, Server: https://..., Admin: false
# What's on my plate?
rememd ls tasks --mine --open
# Grab the next task
rememd task claim a4f91c0e # by id prefix
rememd task claim "CI/CD pipeline" # or by title substring
# Code on it in whatever clone you have
cd ~/wherever/the-repo-is
# Log a note along the way
rememd note "EAS requires an org seat for this to work"
# Mark done via the agent (MCP) or directly:
# (claim ↔ release is the only enforced atomic lock; status lives in the blob)
# Tail live activity in a spare tab
rememd watch
Command reference
Identity & mode
| Command | What it does |
|---|---|
rememd mode show | Current storage mode + source (env var / mode file / default). |
| `rememd mode set remote \ | local` |
rememd me | Your user record on the remote backend. |
rememd join <url> | Consume an invite, save access token, persist remote mode. |
Browsing
| Command | Notes |
|---|---|
rememd ls workspaces | Every workspace you can see. |
rememd ls products [--workspace <slug>] | Products + focus-area / feature counts. |
rememd ls focus-areas [--workspace <slug>] [--product <name>] | Focus areas with feature counts. |
rememd ls features [--workspace <slug>] | Features, statuses, done/total task ratio. |
rememd ls tasks [--mine] [--open] [--feature <substr>] | Filter to your claimed work or just open items. |
Short flags work too: -w for workspace, -p for product, -f for feature.
Task operations
| Command | Notes |
|---|---|
rememd task show <id-or-substring> | Title, status, priority, assignee, description. |
rememd task claim <id-or-substring> | Atomic; 409 if already claimed. |
rememd task release <id-or-substring> | 403 if you're not the holder (admin can force). |
Substrings match title case-insensitively. UUID prefixes work (6+ chars usually unique). Ambiguous matches print the top 5 and refuse.
Content
| Command | Notes |
|---|---|
rememd prd show <feature> | Dump the feature's PRD markdown to stdout. |
rememd prd edit <feature> | Open in $VISUAL or $EDITOR or vi. Saves on exit. |
On save, rememd prd edit catches version conflicts. If someone else edited between your fetch and save, it drops the server copy next to yours as <name>.server.md and refuses to overwrite. You merge manually and re-run.
Live push
rememd watch stays open, printing every backend event as it happens:
Watching http://localhost:8080... (Ctrl-C to exit)
[14:07:22] PRESENCE online=2
[14:07:31] CLAIMED task=a4f91c0e ws=4d9841ec v12
[14:08:04] CHANGED ws=4d9841ec v13
[14:08:15] RELEASED task=a4f91c0e ws=4d9841ec v14
Filtered to workspaces you can see. Auto-reconnects on network drops (3s backoff). Same SSE stream the app uses; this just prints each event instead of re-rendering.
Container folders (per-user)
"Where each project lives on my disk" lives in ~/.recall/repo-map.json, never synced. The folder you link is a container - it doesn't have to be a git repo, and any cwd at or beneath it (including subdirectories that aren't repos themselves) inherits the project context.
| Command | Notes |
|---|---|
rememd where | Show the resolved current project for cwd, plus where the resolution came from. |
rememd link show | Print the current map. |
rememd link focus-area <name> <path> | Link a folder as the focus area's container. |
rememd link feature <name> <path> | Link a folder for a specific feature (overrides the focus area's link inside that folder). |
| `rememd link unlink focus-area\ | feature <name>` |
Resolution rule: walk up from cwd; the deepest registered ancestor wins. So linking ~/work/famnly then linking ~/work/famnly/packages/auth gives you the auth context only inside packages/auth/, and the broader famnly context everywhere else under ~/work/famnly/.
You only need links if you want:
rememd note,rememd log,rememd resumeto auto-resolve the project from cwd.- Auto-scoped
rememd ls tasks(no--workspace/--featureflags needed). rememd connectto resolve the right target from the folder you are standing in.
Pure CLI workflow with explicit flags (rememd ls tasks --workspace X, rememd task claim, rememd watch, rememd prd edit) needs zero path setup.
Legacy repo-aware commands
These work everywhere now (no longer require the app to be running) - they go through Storage directly. They still need a linked folder to auto-resolve "current project" from cwd:
rememd connect- bind this terminal to the current repo's product, so tool calls default to it.rememd note "..."- save a note to the product covering cwd.rememd log- log a session checkpoint with branch + recent commits.rememd resume- print context from the most recent session for this project.
Administrative (backend box)
cd backend/
make up # docker compose up
make logs # tail server logs
make backup # compressed dump to backups/
make restore FILE=... # atomic restore (stops server, drops db, reloads, starts)
make test # full Go test suite on ephemeral Postgres
Scripting
All commands write human-readable tables by default. JSON output is on the Tier-2 roadmap - today, parsing is manual. For quick scripts, lean on awk:
rememd ls tasks --mine --open | awk 'NR>2 {print $1}' # just the ids
Once --json ships, this gets nicer.
What the CLI does NOT do (yet)
- Start agent sessions. Run
claudeyourself, thenrememd connect. - Edit the workspace/product/focus-area hierarchy. Use the menu bar panel.
- Create invites or manage members. Use Invite on any row in the menu bar panel, or hit the admin HTTP endpoints with curl.
- Show the session timeline. Open the session from the panel's rail.
The CLI is scoped to daily-work operations: find work, claim it, note insights, watch activity. The menu bar app owns connecting a terminal, browsing context, and administration.