CoDNA Request access
Contents

Docs Reference

Command line

Every command of codna, the one binary that runs CoDNA and everything around it, with each command's flags.

codna help prints this:

codna — company knowledge, organized by AI agents

Usage:
  codna <command> [flags]

Commands:
  serve                 Run the API, MCP endpoint, workers, and web UI
  migrate up            Apply pending database migrations
  migrate down          Roll back the most recent migration
  migrate status        Show applied and pending migrations
  migrate version       Show the version the schema is at
  bootstrap [email]     Create the first person (--sso-only), and a management token (--service-token)
  reindex               Rebuild the search index from Postgres
  ingest <dir>          Bulk-load files into raw: PDFs, Word, HTML, a shared drive
  import <dir>          Read a markdown tree back in, preserving addresses and ids
  export                Write out what one person can read (--as), or everything (--all)
  version               Print version information
  help                  Show this message

Running the instance, as management (each change is audited):
  people list [--all] | create <email> [--name N] [--sso-only]
         | deactivate <who> [--transfer-to <who>] | activate <who>
         | transfer <who> --to <who> | set-password <who> | sign-out <who>
  groups list | create <name> [--slug s] [--description d] | rename <slug> <name>
         | delete <slug> | members <slug> | add <slug> <who>... | remove <slug> <who>...
  tokens list | create <name> [--expires-in-days N] | revoke <id|prefix>
  agents list | create <slug> --name N --subject S [--responsible who,...] [--description d]
         | responsible <slug> <who>... | deactivate <slug> | activate <slug>
         | delete <slug> --transfer-to <who>
                        Agents built elsewhere, connected over MCP as service accounts
  documents find [--owner E] [--shared-with W] [--space S] [--status S] [--quarantined] [--trashed] [--after ID]
         | unshare <id> [--from W] | quarantine <id> --reason R | release <id> [--restore-sharing]
                        Break-glass without reading: by metadata, never by content
  status                How the instance is doing
  usage [--weeks N]     How it is used: people, writing and tool calls by week, and each person
  events dead | events retry <id>
                        What the outbox gave up on, and handing it back
  Passwords come from a prompt, or CODNA_PERSON_PASSWORD. --json prints JSON.

Configuration is read from the environment; see .env.example.
Deployment guides for Compose, Kubernetes, and VMs are in deploy/.

Below are each command's flags, as -h prints them. A flag can come before or after the arguments: codna people create dana@acme.test --name Dana. Every command reads its configuration from the environment; see Settings.

serve

No flags.

migrate

migrate up

No flags.

migrate down

No flags.

migrate status

No flags.

migrate version

No flags.

bootstrap

  -service-token
    	also issue a management token, printed once, for running the instance
  -sso-only
    	create the person without a password; they sign in through the identity provider
  -token-name string
    	name for the management token (default "bootstrap")
  -token-scope string
    	scope of that token; "manage" is the only one (default "manage")

reindex

No flags.

ingest

  -as string
    	email of the account to file the documents under (required)
  -dry-run
    	list what would be imported and stop
  -skip-existing
    	skip files already ingested under the same name
  -user string
    	alias for --as

import

  -as string
    	email of the account to import as (required)
  -dry-run
    	report what would be created and updated, and write nothing
  -space string
    	space for files whose path does not name one

export

  -all
    	export every document, whoever can read it (a backup or a move)
  -as string
    	email of the person to export as
  -include-deleted
    	include tombstoned documents
  -out string
    	directory to write into (default codna-export-<date>)
  -space string
    	comma-separated spaces to include (default all)
  -with-history
    	include every revision
  -with-originals
    	copy ingested source files next to their conversions (default true)

people

people list

  -all
    	include deactivated people
  -json
    	print JSON

people create

  -json
    	print JSON
  -name string
    	the person's name (default: their email)
  -sso-only
    	no password; they sign in through the identity provider

people deactivate

  -json
    	print JSON
  -transfer-to string
    	then hand their documents and automations to this person

people activate

  -json
    	print JSON

people transfer

  -automations
    	move their automations; they arrive switched off (default true)
  -documents
    	move their documents, trashed ones included (default true)
  -json
    	print JSON
  -to string
    	who receives them (required)

people set-password

  -json
    	print JSON

people sign-out

  -json
    	print JSON

groups

groups list

  -json
    	print JSON

groups create

  -description string
    	what the group is
  -json
    	print JSON
  -slug string
    	the group's slug (default: from its name)

groups rename

  -json
    	print JSON

groups delete

  -json
    	print JSON

groups members

  -json
    	print JSON

groups add

  -json
    	print JSON

groups remove

  -json
    	print JSON

tokens

tokens list

  -json
    	print JSON

tokens create

  -expires-in-days int
    	days until it expires (default: never)
  -json
    	print JSON

tokens revoke

  -json
    	print JSON

agents

agents list

  -json
    	print JSON

agents create

  -description string
    	what it is for
  -json
    	print JSON
  -name string
    	what people call it
  -responsible string
    	who answers for it: emails, comma-separated
  -subject string
    	its service account's subject at the identity provider

agents responsible

  -json
    	print JSON

agents deactivate

  -json
    	print JSON

agents activate

  -json
    	print JSON

agents delete

  -json
    	print JSON
  -transfer-to string
    	who gets the pages it wrote

documents

documents find

  -after string
    	the next page: the id the previous page ended with
  -json
    	print JSON
  -limit int
    	how many, at most 200 (default 50)
  -owner string
    	the owner's email
  -quarantined
    	only quarantined documents
  -shared-with string
    	"everyone", "group:<slug>", an email, "any" or "none"
  -space string
    	raw, wiki or output
  -status string
    	draft, active or archived
  -trashed
    	only trashed documents

documents unshare

  -from string
    	take only this share away: "everyone", "group:<slug>" or an email
  -json
    	print JSON

documents quarantine

  -json
    	print JSON
  -reason string
    	why: the owner is told (required)

documents release

  -json
    	print JSON
  -restore-sharing
    	give back the shares the quarantine took away

status

  -json
    	print JSON

usage

  -json
    	print JSON
  -weeks int
    	how many weeks, this one included (at most 52) (default 8)

events

events dead

No flags.

events retry

No flags.