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 yourAGENTS.md/CLAUDE.md
Everything writes locally. No GitHub App, no upload, no server-side scan. Your repo never leaves your machine.
Run it
Section titled “Run it”You need a Memoturn API key and project slug. Mint them at the dashboard → API keys.
# Dry run, preview the plannpx -y @memoturn/cli onboard
# Apply: install skills/rules and write the local filesnpx -y @memoturn/cli onboard --applyThe 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.mdWhat gets written where
Section titled “What gets written where”| Agent | File | Action |
|---|---|---|
| Claude Code | .claude/settings.json | merge mcpServers.memoturn + hooks.PostToolUse |
| Claude Code | CLAUDE.md | merge or create. Adds ## Memory (Memoturn) |
| Cursor | .cursor/mcp.json | merge mcpServers.memoturn |
| Cursor | .cursor/hooks.json | merge hooks.afterFileEdit |
| Cursor / Codex | AGENTS.md | merge or create |
| Codex CLI | ~/.codex/config.toml | append [mcp_servers.memoturn] |
| Codex CLI | .codex/hooks.json | merge hooks.PostToolUse |
| Copilot | .github/copilot-instructions.md | merge or create (no MCP; Copilot is instructions-only) |
| Copilot (via VS Code MCP) | .vscode/mcp.json | merge 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.
What it scans
Section titled “What it scans”Only config-file shape: no content embedding, no AST parsing, under 500 ms on a typical monorepo.
| Signal | Tag emitted |
|---|---|
package.json deps include next, or next.config.* | next.js, react |
astro.config.* or deps include astro | astro |
wrangler.{toml,jsonc,json} or deps include wrangler | cloudflare-workers |
deps include hono / drizzle-orm / prisma / @trpc/server / @tanstack/react-start | hono / drizzle / prisma / trpc / tanstack-start |
pnpm-workspace.yaml / turbo.json | pnpm-monorepo / turborepo |
pyproject.toml / requirements.txt (with fastapi) | python (+ python-fastapi) |
go.mod / Cargo.toml | go / rust |
.github/workflows/*.yml | github-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 caveat
Section titled “Copilot caveat”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.
Dashboard preview
Section titled “Dashboard preview”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.
Already-wired projects
Section titled “Already-wired projects”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).