aide_init
Bootstraps the AIDE development environment into a project and returns structured JSON summaries and manifests so agents can inspect, create, and overwrite setup files category by category.
Instructions
Bootstrap the AIDE development environment into a project. Returns structured JSON for agent consumption — not prose.
The tool uses a two-call pattern for progressive disclosure:
First call (no category param): Returns a lightweight summary — every step with name, status (would-create/would-overwrite/would-skip/exists), category, and filePath, but NO content fields. Also returns brainHints (brain root candidates) and detected framework. Use this to understand what needs to be done and which categories require user prompts.
Second call (with category param): The tool writes all would-create AND approved would-overwrite files directly to disk itself and returns a manifest — steps with filePath, status (created, overwritten, or exists), and name, but NO content. would-skip steps stay would-skip in the manifest (tool writes nothing for them). The agent never sees file content and never uses the Write tool for new files.
Exception — MCP steps: For MCP steps, the manifest includes prescription data (key name and entry object) so the agent can read the existing config, merge, and write. The tool never touches MCP config directly.
Exception — brain category: The Brain config (brain.aide) step carries brainSummary on every call, including the summary: sections (each section's marker, role, seedPath for seeds, and templateBytes), missingSections, staleSections, legacyLauncher reasons and templateIntegration. It never carries section text, purposes, repair blocks or before/after bodies. Missing sections are inserted with aide_upgrade category: "brain", seeds are read one at a time with aide_brain, and migrations are previewed and applied one at a time through aide_upgrade. Sections the user edited and custom launchers are never offered. The tool creates .aide/config/brain.aide when it is absent and never overwrites an existing one.
Exception — session record: The Session record (session.aide) step never carries content and the tool never writes it. When it is would-create, its instructions tell you to call aide_scaffold with directory "." and type "session" — do that, unprompted. When .aide/session.aide exists it is exists and is never overwritten.
Exception — IDE VS Code steps: IDE steps that need external tooling (VS Code CLI) return instructions for the agent to execute, since those aren't simple file writes.
Agent branch logic — silent-on-create, prompt-on-overwrite:
After the first call, walk the categories using this rule:
Pure-create category (all steps are
would-create,would-skip, orexists): apply silently by calling withcategory=Ximmediately — no AskUserQuestion. A category with nothing on disk to overwrite has no decision the user can inform.Overwrite-bearing category (any step is
would-overwrite): pause and use AskUserQuestion with structured options. Name the files that would be overwritten. If the user approves, call withcategory=X— the tool overwrites and returnsoverwrittenin the manifest. If the user declines an overwrite but wants the new files, call withcategory=X— the tool writes onlywould-createsteps; thewould-overwritestep stayswould-overwritein the manifest.Inherent-decision categories (framework, brain root path, MCP config merge, IDE choice): always use AskUserQuestion regardless of disk state. These are not file-write decisions — filesystem contents cannot resolve them.
IMPORTANT — one-at-a-time wizard pattern using AskUserQuestion:
Do NOT present a summary table of all categories. Do NOT offer "all" as an option. Do NOT ask conversational questions — use the AskUserQuestion tool with structured options at every pause point.
Call without
categoryfirst to get the metadataPresent ONLY the detected framework — use AskUserQuestion with Yes/{alternatives} options. STOP.
Walk categories in order: methodology, commands, agents, skills, mcp, brain, ide, readme. For each:
Pure-create: apply silently (call with
category=X), report results, move to next.Overwrite-bearing: use AskUserQuestion naming the would-overwrite files. STOP. Wait for selection, then call with
category=X. Report manifest (created N, overwrote M). Move to next.Inherent decision: always use AskUserQuestion. STOP.
For brain: read
brainSummaryfrom the step, then direct the user to/aide:brain config. Call withcategory=brainonly to receive the manifest; the tool creates.aide/config/brain.aideonly when absent and never overwrites an existing one.For MCP: when the aide step is would-create, its
globalPackagenames the aide server's global package. Ifinstalledis false, the step also carriesinstructions: act on them before merging — run itsinstallCommandvia Bash first — running AIDE's setup is the consent. If the install fails, tell the user plainly and stop: never merge an entry whose command is not installed. Then use AskUserQuestion with Merge/Skip and merge theprescriptionentry (the globalaidemd-mcpcommand) into the existing config yourself (read → merge → write). Never replace an existing aide entry. STOP.For IDE: use AskUserQuestion with multiSelect for Zed/VS Code/Neither. STOP.
Each pause point is ONE AskUserQuestion → wait for selection → then proceed. Never show multiple categories at once. Never ask open-ended conversational questions.
Tool call template
This tool declares no required parameters. Add optional parameters from the input schema as needed.
{
"id": 1,
"jsonrpc": "2.0",
"method": "tools/call",
"params": {
"arguments": {},
"name": "aide_init"
}
}Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| path | No | Custom project root path (defaults to server working directory) | |
| category | No | Write all would-create and approved would-overwrite files for this category to disk and return a manifest (status: created/overwritten/exists; would-skip steps pass through unchanged). Omit on the first call to get a metadata-only summary of all steps. | |
| framework | No | Force a specific framework instead of auto-detecting. Use this when re-calling after the user confirms or overrides detection. |