SDODS
ReferenceCLI commands

sdods init

Scaffold a new SDODS workspace with an organization, a workspace and the demo project.

sdods init [dir] [--db sqlite|postgres] [--pm bun|pnpm] [--no-demo] [--claude] [--from <app>]
             [--git] [--link] [--no-install] [--no-browsers]
             [--org <slug>] [--org-name <name>] [--workspace <slug>] [--workspace-name <name>] [--force]
FlagMeaning
dirtarget directory (default: current directory; must be empty unless --force)
--dbdatabase driver written to .env.example (sqlite needs no setup)
--pmpackage manager used for the install step and printed in next steps
--no-demoskip copying projects/demo-shop
--clauderun sdods agent install-claude afterwards (.claude/agents, .mcp.json)
--from <app>analyze an application repository and create a project from it (sdods analyze --apply)
--gitgit init plus an initial commit
--linkdepend on the local SDODS packages instead of the npm registry (developing SDODS itself)
--no-install / --no-browsersskip the dependency install / the chromium download
--org, --org-nameorganization written to sdods.workspace.yaml (default default)
--workspace, --workspace-namefirst workspace (default default)

What gets created:

FilePurpose
package.jsondepends on @sdods/cli, @sdods/core and the runner packages; scripts test, test:api, test:ui, lint, serve, doctor
sdods.workspace.yamlorganization, workspaces, defaultWorkspace, default processes (pr-check, nightly-regression, release-gate)
sdods.runner.config.tsgenerated from the project registry (project × layer × browser)
tsconfig.jsonstrict NodeNext config covering projects/**
.env.example, .gitignoresecrets template and ignores (.sdods/, .auth/, .env.*)
docker-compose.ymlPostgres 16 and the optional server
projects/demo-shop/the reference project (unless --no-demo)
.claude/skills/sdods-record and sdods-run skills
npx -y @sdods/cli init my-tests --org acme --workspace web && cd my-tests
bun run sdods doctor
bun run sdods workspace tree
bun run sdods run -p demo-shop -e staging -l api

Exit code 2 when the directory is not empty (use --force) or a flag value is invalid.

Using an AI coding agent? Install SDODS:

Install the SDODS plugin in Claude Code: skills, subagents, commands and the MCP server.

  1. /plugin marketplace add YarlisAISolutions/sdods-skills
  2. /plugin install sdods@sdods
Learn more about using SDODS with AI tools