Skip to content

Obsidian operator workspace

Clawbot, the videoclaw mascot, illustrating obsidian

Run an entire multi-project video portfolio from a normal Obsidian sidebar instead of terminal scrollback — vclaw writes a vault of 14 dashboard notes plus one note per project, all regenerated from canonical repo state with a single command.

What it does

  • Turns the CLI into a control plane you can browse. Active queue, blockers, owners, dependencies, health, timeline, and the review-state ladder become navigable markdown notes.
  • Writes 14 dashboard notesDashboard, Active, Needs Review, Blocked, Complete, Metrics, Health, Next Actions, Dependencies, Timeline, Trends, History, Changes, Owner Workload.
  • Writes one note per project under Projects/<slug>.md with queryable frontmatter (state, mode, score, owner, priority, due risk, storyboard_review_state, ops_status, execution profile, artifact links) and a body covering stage status, checkpoints, characters, character bindings, and prompt guidance.
  • Optionally writes per-scene notes (Projects/<slug>/Scenes/<i>.md) when a scene-candidates artifact exists — one note per scene with prompt, characters, reference sheets, candidate takes, and selection state.
  • Is a view, never the source of truth. The repo on disk (projects/<slug>/, artifacts/, checkpoints/, events/) is canonical; the vault is a regenerable rendering you can delete and rebuild any time.
  • Honest health. Dashboards are backed by the same doctor-portfolio, metrics, and scorecard machinery that drives reporting — missing approvals, stale reviews, and blocked work are counted, not guessed.

How to use it

bash
node dist/cli/vclaw.js video sync-obsidian --root . --output-dir ./ops/obsidian

Regenerates every dashboard note plus a project note for every project under --root. Idempotent — run it twice, get the same vault. This is the common case after a meaningful CLI change.

bash
node dist/cli/vclaw.js video export-obsidian --project my-project --output-dir ./ops/obsidian/Projects

Writes one project note (and its scene notes) for my-project only — useful for incremental updates between full syncs.

bash
node dist/cli/vclaw.js video sync-obsidian --root . --output-dir ./ops/obsidian --mode director

Filters the vault to a single production mode, so you can keep separate storyboard and director vaults at scale.

All of the above also work via the published binary, e.g. vclaw video sync-obsidian --output-dir ./ops/obsidian.

How it flows

obsidian diagram

Diagram source (live Mermaid)

Artifacts & outputs

sync-obsidian / export-obsidian are readers, not artifact writers — they emit markdown into your chosen --output-dir, not into the canonical projects/<slug>/artifacts/ tree:

  • Dashboard.md, Active.md, Needs Review.md, Blocked.md, Complete.md, Metrics.md, Health.md, Next Actions.md, Dependencies.md, Timeline.md, Trends.md, History.md, Changes.md, Owner Workload.md — the 14 dashboard notes at the vault root.
  • Projects/<slug>.md — one frontmatter-bearing note per project.
  • Projects/<slug>/Scenes/<i>.md — per-scene notes, only when projects/<slug>/artifacts/scene-candidates.json exists.

The notes are derived from the canonical JSON they link to: projects/<slug>/artifacts/ (brief, storyboard, scene-candidates, scene-selection, reference-sheets, review-report, ...), projects/<slug>/checkpoints/, and projects/<slug>/events/events.jsonl.

Tips & gotchas

Treat the vault as a build artifact

Never hand-edit notes and expect changes to flow back — the CLI is the only writer. To change owners, priorities, blockers, or approval state, use set-meta / approve, then re-sync. Pin Dashboard.md as Obsidian's default note. Combine project frontmatter with the Dataview plugin for ad-hoc queries (e.g. "all director-mode projects with stale reviews owned by X").

If a note disagrees with the CLI, the CLI is right

The vault can go stale the moment you advance work. Re-run sync-obsidian after any meaningful CLI change. If the CLI itself disagrees with what shipped, the artifact JSON under projects/<slug>/artifacts/ is authoritative — let doctor find the drift. Historical state already lives in events/events.jsonl and artifacts/history/, so you don't need to version the vault to keep history.

Driving it from an agent

Both commands are deterministic, side-effect-light reads: run sync-obsidian after each pipeline step, then parse Next Actions.md / Needs Review.md (or the project-note frontmatter) to decide what to do next — storyboard_review_state: stale plus an awaiting-approval ops_status is the signal that a director-mode run is gated on human sign-off. Non-zero exit means the sync failed; the vault is then untrusted until the next clean run.

See also: Operations loop · Status & reporting · Scene candidates · Reference sheets

Built to be driven by agent hosts like Claude Code, Claude Desktop, or Codex · Source-available, commercial use requires a paid license.