Context Nine

approvedunreviewed

by contextnine

TaskNotes capture, context routing, vault command cockpit, and attachment cleanup tools.

↓ 371 downloadsUpdated 1mo agoMIT

Context Nine

TaskNotes capture, context routing, vault command cockpit, and attachment cleanup tools for Obsidian.

Published by Context Nine (CTX9), an enterprise AI strategy and engineering studio founded by Matthew Derman.

Context Nine is desktop-only. Vault Command Center and background sync commands use local Node.js process APIs.

Features

  • Capture selected Markdown into a new TaskNotes task.
  • Append selected Markdown to an existing TaskNotes task under ## Captures.
  • Copy the current note's vault-relative directory to the clipboard.
  • Route attachment links from captured selections into destination context folders.
  • Route pasted or dropped inbox attachments from _system/_obsidian/attachments/_inbox.
  • Move TaskNotes files when context fields change.
  • Add file delete actions for file explorer items, Bases kanban cards, and TaskNotes edit modals where possible.
  • Open a right-sidebar Vault Command Center for common vault terminal commands.
  • Open the full-screen vault tui control room for backup/sync, upgrade, command execution, logs, and interactive setup flows.
  • Replace open past periodic-note tabs with the current daily, weekly, monthly, quarterly, or yearly note after vault refresh.

Commands

CommandBehavior
Capture selection to new TaskNotes taskOpens TaskNotes create dialog. If Markdown is selected, injects selection into task details on save, routes selected attachments, then deletes source selection after success.
Append selection to existing TaskNotes taskOpens a task picker, appends selected block under ## Captures, routes selected attachments, then deletes source selection after success.
Copy current note directoryCopies the active note's vault-relative parent directory. Default shortcut on macOS: Cmd+Option+C.
Route inbox attachments for active noteMoves queued inbox attachments into active note context.
Route TaskNotes files by contextMoves TaskNotes files to folders matching their context metadata.
Delete hovered or selected fileUses Obsidian delete confirmation and trash behavior.
New note in hovered folderCreates Untitled.md in hovered file-explorer folder, falling back to Obsidian new note behavior.
Open vault command centerOpens command runner panel in right sidebar.
Refresh past periodic-note tabsReuses each stale Markdown leaf for the current note in the same context or vault-rollup scope. Current and future notes stay open.

Vault Refresh Handoff

Context Nine reads _system/state/refresh-complete.json after startup and whenever vault refresh publishes a new successful run. It also exposes the native Obsidian CLI command:

obsidian context-nine:refresh-periodic-tabs date=2026-07-28 run-id=<refresh-run-id>

The marker is the durable fallback when Obsidian or its CLI is unavailable. The plugin never edits .obsidian/workspace.json; it updates live Markdown leaves through the Obsidian API.

Vault Command Center

Vault Command Center shows local command output in the right sidebar and keeps Git preflight and commit actions in its always-visible primary row. Day-to-day vault commands live in the Obsidian command palette and are loaded from the vault command metadata file.

Output streams live into the panel with stdout, stderr, status, exit code, and timestamps visible after completion.

Vault TUI

The Textual TUI lives under python/ and is exposed through the vault dispatcher:

vault tui

Development:

cd python
uv run pytest
uv run vault-tui --vault-root "$(vault root)"

The TUI ships with the public Context Vault and follows its dependency installer. It is not a standalone ctx9 launcher component because it has no useful lifecycle without a Vault.

Development

npm install
npm run build
npm run test
VAULT_ROOT="/path/to/vault" npm run install-vault

npm run install-vault builds the plugin and copies main.js, manifest.json, and styles.css into:

.obsidian/plugins/context-nine/

Release

GitHub releases must include these assets:

  • main.js
  • manifest.json
  • styles.css

Release tag must match manifest.json version.

The release workflow generates release notes and publishes provenance attestations for every asset. After downloading a release, verify an asset with:

gh attestation verify main.js -R ContextNine/context_nine_obsidian_plugin

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.