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 at the dashboardAPI 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 /projects/<slug>/onboard page on the dashboard shows the same recommendations as a read-only preview, with one-click install buttons for skills and rules. Use it when you don’t have shell access on the box where the agent runs.

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).