Skip to content

Onboard

memoturn onboard is the fastest way to wire Memoturn into an existing project. It scans your repo, infers the stack, and installs:

  • Skill bundles tailored to what it finds (Next.js, Cloudflare Workers, Drizzle, FastAPI, monorepo conventions, …)
  • Default rules (error-pin, claim-watchdog, review-router)
  • Agent-config files for Claude Code, Cursor, Codex CLI, and (instructions-only) Copilot
  • Presence hooks so cursor / claude / codex broadcast presence as you edit
  • A minimal ## Memory (Memoturn) section in your AGENTS.md / CLAUDE.md

Everything writes locally. No GitHub App, no upload, no server-side scan. Your repo never leaves your machine.

You need a Memoturn API key and project slug. Mint them from your Memoturn dashboard → API keys.

Terminal window
# Dry run, preview the plan
npx -y @memoturn/cli onboard
# Apply: install skills/rules and write the local files
npx -y @memoturn/cli onboard --apply

The first run prints a tree like this:

memoturn onboard, scanning /Users/you/code/myapp
▸ Detected: next.js, react, drizzle, cloudflare-workers, pnpm-monorepo, turborepo
Existing config: .claude/, CLAUDE.md, .cursor/
▸ Skill bundles
• memoturn-mcp-toolkit (Universal) names every Memoturn MCP tool with usage guidance
• next-app-router-conventions (Detected tag: next.js)
• cloudflare-workers-tail (Detected tag: cloudflare-workers)
• drizzle-migrations (Detected tag: drizzle)
• monorepo-pnpm-turbo (Detected pnpm + turborepo monorepo)
▸ Rules
• error-pin / claim-watchdog / review-router
▸ Local file changes
~ .claude/settings.json: add memoturn MCP entry [claude-code]
~ CLAUDE.md: append Memoturn section after first H1
+ .cursor/mcp.json: create with memoturn MCP entry
+ AGENTS.md: create with Memoturn section
+ ~/.codex/config.toml: create with memoturn MCP entry
+ .vscode/mcp.json: create with memoturn MCP entry
Re-run with --apply to install skills/rules and write the local files above.

Then --apply prompts before each batch of network installs and file writes.

--dry-run show plan; write nothing (default)
--apply install skills/rules and write local config files
--yes skip the y/n confirmation under --apply
--agent <id[,id…]> limit to claude-code | cursor | codex | copilot | all
--root <path> scan path (default: cwd)
--print-profile print the detected StackProfile JSON and exit
--json machine-readable plan JSON (no apply)
--skip-skills don't install default skill bundles
--skip-rules don't install default rules
--skip-hooks don't write presence hook config
--skip-agents-md don't touch AGENTS.md / CLAUDE.md / copilot-instructions.md
AgentFileAction
Claude Code.claude/settings.jsonmerge mcpServers.memoturn + hooks.PostToolUse
Claude CodeCLAUDE.mdmerge or create. Adds ## Memory (Memoturn)
Cursor.cursor/mcp.jsonmerge mcpServers.memoturn
Cursor.cursor/hooks.jsonmerge hooks.afterFileEdit
Cursor / CodexAGENTS.mdmerge or create
Codex CLI~/.codex/config.tomlappend [mcp_servers.memoturn]
Codex CLI.codex/hooks.jsonmerge hooks.PostToolUse
Copilot.github/copilot-instructions.mdmerge or create (no MCP; Copilot is instructions-only)
Copilot (via VS Code MCP).vscode/mcp.jsonmerge servers.memoturn

All writes are non-destructive: existing entries round-trip untouched, the memory section is inserted after the first # Heading 1 (or appended if no H1), and re-running --apply is idempotent. Every file should print “already present” the second time.

Only config-file shape: no content embedding, no AST parsing, under 500 ms on a typical monorepo.

SignalTag emitted
package.json deps include next, or next.config.*next.js, react
astro.config.* or deps include astroastro
wrangler.{toml,jsonc,json} or deps include wranglercloudflare-workers
deps include hono / drizzle-orm / prisma / @trpc/server / @tanstack/react-starthono / drizzle / prisma / trpc / tanstack-start
pnpm-workspace.yaml / turbo.jsonpnpm-monorepo / turborepo
pyproject.toml / requirements.txt (with fastapi)python (+ python-fastapi)
go.mod / Cargo.tomlgo / rust
.github/workflows/*.ymlgithub-actions

For monorepos, the scanner walks one level into apps/* and packages/* and unions tags from each sub-package’s package.json into a single root profile. If you need per-package config, run memoturn onboard --root packages/api separately.

Copilot has no MCP transport. The deliverable for Copilot is .github/copilot-instructions.md plus .vscode/mcp.json (which VS Code itself routes for any MCP-aware extension). If you only use Copilot, run memoturn onboard --agent copilot.

The dashboard carries the same commands under Connect → Scan my repo. Skill and rule bundles install from the Skills and Rules surfaces. The scan itself is local, so it has to run on the machine the agent runs on.

If you already have .claude/settings.json or .cursor/mcp.json set up, memoturn onboard adds only what’s missing and leaves your other entries untouched. Re-running it is the simplest way to refresh skill bundles after a dependency change (e.g. you just added Drizzle, re-run to pull in drizzle-migrations).