본문으로 건너뛰기
cccskills
무료GitHub에 공개

notebook

Read and edit a notebook canvas from the command line via the `notebook` CLI (crates/notebook_cli). Use when the user wants to view the canvas, add/move/edit/recolor/delete nodes, connect or disconnect edges, restack, seed, or rename the canvas — e.g. "show the notebook", "add a node", "move that node", "connect these two nodes".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

damus-io/notedeck스타 317(GitHub 317 + cccskills 0)

실행 점수 미검증

설치 방법 보기

포함된 파일(1)

  • SKILL.md7.5 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Notebook canvas CLI

notebook is a CLI over a running notedeck's embedded relay. It keeps its own nostrdb cache, reconciles with the relay each run (NIP-77 negentropy, falling back to NIP-01, or fully offline against the cache), folds the canvas locally with the same reducer the egui app uses, and forwards edits back so the running app sees them. Source: crates/notebook_cli; the cache/sync/relay/key plumbing is shared with headway via crates/relay_sync.

Running it

Prefer a built binary; fall back to cargo:

# build once, then call the binary directly (fast, no rebuild per command)
cargo build -p notebook_cli           # produces target/debug/notebook
target/debug/notebook <command>

# or, one-off:
cargo run -q -p notebook_cli -- <command>

In examples below, notebook means whichever form you're using.

Logging in

The CLI reads and writes your own canvas once you're logged in. The author whose canvas is loaded comes from --author <pk>, else the signing key's own pubkey — so to read or edit without --author you need a key configured. Relay defaults to ws://127.0.0.1:6677 (notedeck's embedded relay); override with --relay <url> or $NOTEBOOK_RELAY. If no relay answers, the CLI works offline against its cache and edits reach the app on the next connected run.

If a command fails because no key is configured (need --nsec to sign, or --author to read a canvas), ask the user to run notebook login. Don't handle the key yourself.

The golden rule: show before you edit

Each node has a friendly reference — the notebook: scheme then three BIP-39 words encoding the leading bits of its event id, e.g. notebook:maple-river-canyon. It's a sayable rendering of the node's real identity (its 64-char nostr event id), the notebook sibling of headway's headway:<board>/… cards — single-segment (no canvas), because a node's identity is its event id, not the canvas it happens to sit on. show prints it muted at the end of each node line; quote it in chat or commits, and pass it back to any command that takes a <node>.

A <node> argument resolves, in order, as:

  • the full 64-char hex id, or any unique hex prefix — canonical, best for scripted edits where you've pulled the id from show --json
  • a notebook:<word-id> reference, e.g. notebook:maple-river-canyon. The notebook: scheme is required — a bare maple-river-canyon is not a reference and won't resolve.

Edges are addressed by their edge id (<from-hex>-<to-hex>, shown muted by show) or a unique prefix. Always run show first to read the current ids, then act on what you actually see — never assume an id or that a node is where you expect.

notebook show              # human-readable: title, nodes, edges, pending
notebook show --json       # machine-readable, for parsing (each node has `id` + `ref`)
notebook show <node>...    # print only the given nodes (hex id, notebook:<word-id>, or prefix)
notebook show <node> --json

show prints the canvas title (with [open] if open), then each node as <first line of text> (x,y w×h) notebook:<word-id> with the geometry and reference muted, then edges as <from-ref> → <to-ref> <edge-id>, then any pending nodes (proposals on a closed canvas). If there's no canvas yet it tells you to run notebook seed; with --json it prints null.

If a selector doesn't resolve, errors are explicit: an ambiguous prefix says ambiguous node prefix / ambiguous edge prefix, an unknown one no node matching / no edge matching — re-read show and retry with a longer prefix, the notebook:<word-id> reference, or the full id.

Which form to use: refer to a node by its notebook:<word-id> reference when talking to a human (it's sayable, they'll recognise it, and it renders as a live inline chip in notes/chat). When you script an edit, the hex id from show --json is canonical and can never be ambiguous; the reference resolves too and is fine for one-offs.

Commands

CommandWhat it does
show [nodes...] [--json]Print the canvas, or only the given nodes
seed [title...]Create the canvas if none exists (default title Notebook)
add <text...> [-x -y -w --height]Add a text node, optionally placed/sized
move <node> [-x -y -w --height]Move/resize a node (unset fields keep current geometry)
edit <node> <text...>Replace a node's text
color <node> [color]Recolor a node (none/-/empty clears; --color also works)
restack <node> <index>Restack a node to a display index (0 = bottom)
delete <node>Remove a node (reversible tombstone)
connect <from> <to> [--from-side <s>] [--to-side <s>]Draw an edge between two nodes
disconnect <edge>Remove an edge (id from show)
rename <title...>Rename the canvas
login <nsec>Store a signing key so later runs just work
logoutForget the stored signing key

show, seed, login, and logout aside, every command edits the canvas and needs a signing key. Re-drawing the same connect <from> <to> updates that edge rather than stacking a duplicate (edge ids are stable per ordered pair, latest-wins).

Geometry flags

add and move take geometry in canvas pixels: -x/--x, -y/--y for position and -w/--w, --height for size (height has no -h short — that's --help). add fills any unset field from defaults (a new text node is 250×120 at the origin); move fills unset fields from the node's current geometry, so move <node> -x 400 slides it horizontally without touching its size or y.

notebook add "ship the thing" -x 100 -y 200    # new node at (100,200)
notebook move 1a2b3c4d -x 400 -y 50            # reposition, keep size

Other flags: --author <pk> (read someone else's canvas), --canvas <id> (non-default canvas, default notebook), --db <path> (cache dir), --nsec <nsec> (key for this run; $NOTEBOOK_NSEC takes precedence over the stored key), -h/--help.

Typical workflow

Add a node, then connect it to an existing one:

notebook show                                          # read the canvas + word-ids
notebook add "new idea" -x 300 -y 100                  # create the node
notebook show                                          # read back both word-ids
notebook connect maple-river-canyon glide-amber-mesa   # draw an edge between them
notebook show                                          # verify the edge landed

For scripted edits where ambiguity must be impossible, pull the hex id from notebook show --json and pass that instead of the word-id.

Notes

  • Edits print ok (N events); offline edits append — offline, not forwarded to the app, meaning they're cached but haven't reached the running notedeck yet. seed prints seeded canvas '<id>' (N events).
  • seed errors if a canvas already exists; that's expected — just show instead. An edit that resolves to no change prints action produced no events (unknown node or edge?).
  • The cache lives at <data-dir>/notebook-cli unless --db overrides it. The CLI and the running app converge through the relay, so either side's edits show up on the other after a reconcile. </content>
</invoke>

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

agentium

무료

Query and control Dave agentic sessions from the command line via the `agentium` CLI (crates/agentium_cli), and find your OWN session's agentium: reference. Use when an agent running inside a Dave session needs its own ref (e.g. for a headway done-comment), to list sibling sessions, or to pull another session's detail or full conversation transcript — e.g. "what's my agentium ref", "list the running agent sessions", "show sessions in this cwd", "read session X's transcript".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

damus-io/notedeck3172026년 10월 19일 업데이트

cashflow

무료

Categorize jb55's personal finance ledger from the command line via the `cashflow` CLI (crates/cashflow_cli) — burn down the uncategorized ("unknown") transactions with rules, overrides, splits and transfer links, previewing every write first. Use when asked to categorize transactions, clear the triage queue, add or fix a categorization rule, link transfers between own accounts, or review what an agent session categorized — e.g. "categorize my amex rows", "burn down the unknowns", "why is this charge in expenses:unknown", "undo what that session did".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

damus-io/notedeck3172026년 10월 19일 업데이트

Fast-forward master and every git worktree branch up to a target ref (default github/master), skipping any worktree with unmerged commits. Use when the user wants to sync/update their worktree branches to latest master — e.g. "/ff-worktrees", "ff all worktrees to github/master", "fast-forward the worktrees".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

damus-io/notedeck3172026년 10월 19일 업데이트

handoff

무료

Hand off to a fresh Dave session — ask the user what to work on next, spawn a new session in the current worktree, and send it the task as its first message. Use when the user wants to delegate the next unit of work to a brand-new agentic session rather than continue in this one — e.g. "/handoff", "hand this off", "spawn a session to do X next", "start a fresh session on the next task". `/handoff autowork <task>` also branches the new session off the `autowork` branch and has it land its commit there.

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

damus-io/notedeck3172026년 10월 19일 업데이트

headway

무료

Read and edit a Headway kanban board from the command line via the `headway` CLI (crates/headway_cli). Use when the user wants to view the board, add/move/edit/archive cards, or shuffle work between columns like Backlog, Todo, In Progress, In Review, and Done — e.g. "move X to done", "show the board", "add a card to todo".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

damus-io/notedeck3172026년 10월 19일 업데이트

nd

무료

Drive the running notedeck from the command line via the `nd` CLI (crates/nd_cli) — list its tools and call any of them over its local socket, or spawn a Dave session, e.g. open a headway card or agentium session in the window, open the review queue, or read board data. Use when the user wants to open something in notedeck from a shell, script the app, or see which tools the running notedeck offers — e.g. "open this card in notedeck", "what tools does notedeck have", "call open".

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

damus-io/notedeck3172026년 10월 19일 업데이트

damus-io의 스킬 모두 보기

이 스킬의 문제 신고