ATHELOS
Reference

CLI Reference

Every script and command available in the repository.

CLI Reference

ATHELOS ships with scripts for setup, seeding, and maintenance. This page lists every command.

Running scripts

Scripts run from the repo root:

cd /home/kali/soc-solo-os
pnpm <script-name>

Or with arguments:

SEED_EMAIL=you@example.com SEED_PASSWORD='secret' pnpm seed:user

Development

CommandPurpose
pnpm devRun the web app (port 3000)
pnpm dev:workerRun the background worker
pnpm dev:siteRun the public site (port 3001)
pnpm buildBuild all apps for production
pnpm build:siteBuild only the public site
pnpm lintRun Biome lint across the monorepo
pnpm lint:fixLint and auto-fix
pnpm formatFormat all files with Biome
pnpm typecheckTypeScript check across all packages

User management

Seed the owner account

SEED_EMAIL=you@example.com SEED_PASSWORD='your-password' pnpm seed:user

Creates the owner user. If the user already exists, updates the password and leaves everything else intact.

Database

Run migrations

cd packages/db
pnpm drizzle-kit migrate

Applies all pending migrations to the database. Idempotent — safe to run repeatedly.

Generate a new migration

cd packages/db
pnpm drizzle-kit generate

Compares the schema file against the last migration and generates a new one. Use after editing packages/db/src/schema.ts.

Open Drizzle Studio

cd packages/db
pnpm drizzle-kit studio

Opens a web UI at https://local.drizzle.studio for browsing the database.

Seeds

Every seed is idempotent — safe to re-run.

Knowledge base

pnpm seed:kb

Seeds the base knowledge articles (playbook stubs, references).

Playbooks

pnpm seed:playbook-ptes
pnpm seed:playbook-owasp-wstg
pnpm seed:playbook-owasp-mastg
pnpm seed:playbook-owasp-api-top10

Additional playbook seeds exist for every framework. See the full list in package.json.

Engagements

pnpm seed:engagements

Seeds a demo engagement with a client, scope, and sample findings.

Clients

pnpm seed:clients

Seeds sample clients with contacts and interactions.

Contracts

pnpm seed:contracts

Seeds contract templates (MSA, SoW, NDA).

Rates

pnpm seed:rates

Seeds the default rate cards.

Invoices

pnpm seed:invoices

Seeds sample invoices for the demo client.

Toolbox

pnpm seed:tools
pnpm seed:wordlists
pnpm seed:payloads
pnpm seed:labs
pnpm seed:infra

Seeds the toolbox catalogs: 21 tools, 12 wordlists, 29 payloads, 10 labs, and 7 infrastructure entries.

Reports

pnpm seed:report

Seeds a sample report for the demo engagement.

Embeddings

Reindex all KB articles

pnpm reindex:embeddings

Walks every article and recomputes its embedding. Progress is printed. Requires Ollama running with the embedding model pulled.

Reindex from the UI

From Settings → AI → Embeddings, click Reindex all.

Backups

Run a backup manually

cd backups
./backup.sh

Runs restic, uploads a snapshot to B2, prunes old snapshots.

Restore

cd backups
./restore.sh db <snapshot-id>          # restore database
./restore.sh files <snapshot-id>       # restore MinIO data
./restore.sh path <snapshot-id> /path  # restore one file

List snapshots

cd backups
source .env
restic snapshots

Verify integrity

cd backups
source .env
restic check

Maintenance

Check for dependency vulnerabilities

pnpm audit

List outdated packages

pnpm outdated

Update dependencies

pnpm update

Bumps every package to the latest version within its semver range.

Force resolution of a specific version

Edit package.json:

{
  "pnpm": {
    "overrides": {
      "package-name": "1.2.3"
    }
  }
}

Then:

pnpm install

Docker

Start services

cd docker
docker compose up -d

Stop services

cd docker
docker compose down

Data persists in docker/data/. To wipe everything, rm -rf docker/data before restarting.

View logs

cd docker
docker compose logs -f postgres
docker compose logs -f redis
docker compose logs -f minio
docker compose logs -f meilisearch

Open Postgres shell

docker exec -it soc_postgres psql -U soc -d soc_solo

Open Redis CLI

docker exec -it soc_redis redis-cli -a <password>

Open MinIO console

Navigate to http://localhost:9001 in your browser. Log in with the credentials from docker/.env.

Development-only commands

Clear Next.js cache

cd apps/site
rm -rf .next

Or for the main app:

cd apps/web
rm -rf .next

Useful when the dev server behaves oddly.

Clear pnpm store

pnpm store prune

Removes unused packages from the global store.

Reinstall all dependencies

rm -rf node_modules apps/*/node_modules packages/*/node_modules
pnpm install

Nuclear option. Use when the install is corrupted.

Where to go next