Cocurdex
Concepts

Workspaces and data

How Cocurdex stores workspaces, notes, issues, slide decks, and search data on your machine — and what stays private.

Workspace

A workspace is the project context Cocurdex attaches to — typically a directory on disk where agents, the terminal, and the editor operate.

PropertyMeaning
idStable workspace id
nameDisplay name (often the folder basename)
rootPathsAbsolute paths on disk; the first entry is the primary root

A workspace can include several source folders. Use Edit workspace to Add folder, Make primary, or Remove folder; dropping a folder onto the window opens it as a workspace.

Open from the desktop UI or:

cocurdex .
cocurdex open /path/to/project
cocurdex workspace list

Sessions and many product views are oriented around the active workspace. Notes, issues, and decks may optionally associate with a workspace id; they are not “files inside the project tree” by default. The Decks list shows every deck in one list.

The local web client on this computer — and any paired device you allow — talks to the same daemon and the same workspaces.

App-owned data

Notes, issues, slide decks, views, tags, links, and search indexes live in app-owned storage (cocurdex.sqlite), not as a dual-write Markdown tree.

Important rules:

  1. The desktop daemon is the only process that opens the local database.
  2. The CLI is the supported external read/write boundary for automation and agents.
  3. Markdown import/export is explicit — not a second live database.
  4. Private table schemas and file paths are not a public API.
  5. Upgrades migrate the database forward and keep your data. Before a migration, Cocurdex writes a cocurdex.sqlite.pre-migration-<timestamp> snapshot next to it and keeps the newest three.
  6. A database written by a newer app version is refused, never downgraded. Only a file that is not a Cocurdex database is replaced, and it is first moved aside as a .bak-<timestamp> file.

What lives where

DataAuthority
Notes, issues, slide decks, views, tags, links, FTS indexesDaemon + cocurdex.sqlite
Agent roles, team tasks, worktree settings, session recordsDaemon + cocurdex.sqlite
Installed ACP Registry agentsRecorded in app settings; downloaded binaries live in the app's data directory
Managed git worktreesCreated by the daemon under the configured worktree root
Project source filesYour workspace directory on disk
Agent provider auth (e.g. Codex)That tool’s own config (for example under ~/.codex)
Product skill files (optional)Project or global skills directories after install

Data directory

PlatformDefault location
macOS~/Library/Application Support/Cocurdex
Windows%APPDATA%\Cocurdex
Linux$XDG_CONFIG_HOME/Cocurdex (default ~/.config/Cocurdex)

This location stays the same across releases, so updates keep reading your existing data.

Why this exists

Path-as-identity file trees make stable IDs, transactions, full-text search, and backlinks harder. SQLite gives those properties without asking every tool to parse the repo. Agents keep interoperability through cocurdex note|issue|deck|search … instead of inventing parallel .scratch trees.

Daemon

The daemon:

  • Owns the DB connection
  • Serves desktop and CLI over documented RPC contracts
  • Runs sessions, teams, script runs, and worktree setup
cocurdex daemon status

If CLI data commands fail, open the desktop app (or ensure the daemon process is reachable), then retry.

Cloud and team later

A future team console and cloud API will expose organization-scoped projections for selected entities (likely issues and published docs first). That does not replace local write authority for on-device work:

SurfaceRole
Desktop + daemonLocal write authority
CLILocal automation boundary
Future app. consoleTeam visibility / light collaboration
Future api.Identity, orgs, sync contracts

End-user behavior for sync will appear here as features ship.

Safety checklist

  • Do not open or migrate cocurdex.sqlite in scripts
  • Do not scrape private schema as an integration surface
  • Prefer CLI --json and returned UUIDs
  • Treat product notes, issues, and decks as private until you explicitly publish

On this page