docs/guides/quickstart.md

Quickstart

Zero to your first skill run in 10 minutes.

Prereqs

  • Node 20+
  • Docker (for Postgres)
  • API key for at least one LLM provider (OpenAI or Anthropic)

1. Clone + install

git clone <your-vocion-core-url>
cd vocion-core
npm install

2. Configure env

cp packages/core/.env.example packages/core/.env.local

Edit packages/core/.env.local — at minimum:

DATABASE_URL=postgresql://postgres:postgres@127.0.0.1:5432/vocion
AUTH_SECRET=...   # generate with: openssl rand -base64 32
OPENAI_API_KEY=sk-...

Out of the box, auth is auth.js (next-auth) with email + password — AUTH_SECRET is the only auth env var you need. (Hosted/cloud builds can opt into Clerk instead by setting VOCION_AUTH_PROVIDER=clerk plus the Clerk keys; that's optional and not the default.)

3. Start infra

npm run dev:up

This boots Postgres (pgvector + FTS for first-party retrieval) + Langfuse + Temporal.

4. Apply schema + reference context

npm run db:migrate
npm run workspace:apply

The first workspace:apply seeds the reference tenant at workspace/metacto/ — one agent (the Sales Assistant), 13 skills, 4 object types, 1 workflow. You can swap in your own tenant later by setting WORKSPACE_PATH.

5. Run the dev server

npm run dev:next

Open http://localhost:3000/sign-in and sign in with email + password. Local dev seeds a demo login: demo@example.com / demo123.

6. Talk to an agent

Head to /dashboard/chat and ask the Sales Assistant:

"Summarize the last discovery call."

the Sales Assistant will:

  1. Route through the search_everything skill (retrieval across your Sources)
  2. Pick discovery_summary from its wired skill catalog
  3. Stream back a structured summary with citations back to the transcript

7. Author something

Edit a skill in your editor:

$EDITOR workspace/metacto/skills/discovery-summary/prompt.md

Apply the change:

npm run workspace:apply

Talk to the Sales Assistant again — the new prompt is live. Every skill_run stamps the new workspace_sha, so any output traces back to the exact commit.

8. Ship it to your own tenant

Create a new workspace directory:

mkdir -p workspace/<your-org>/{sources,objects,skills,workflows,agents}
cat > workspace/<your-org>/workspace.yaml <<EOF
version: 1
orgId: <your-org-id>
name: <your-org>
EOF

Point the runtime at it:

WORKSPACE_PATH=workspace/<your-org> VOCION_ORG_ID=<org-id> npm run workspace:apply

Now everything you author under workspace/<your-org>/ is scoped to your organization. When you're ready to split it into its own git repo, see extract-tenant.md.

Next