Skip to main content

Quickstart

This guide gets you from zero to a running goal in the Control Tower.

Prerequisites

1. Restore NodalMerge dependencies

From the nodalmerge-studio repo root, pack local NodalMerge NuGet artifacts from the sibling repo:
pwsh -File .\scripts\restore-local-nodalmerge.ps1

2. Restore and build

dotnet restore NodalMerge.Studio.slnx --configfile NuGet.config
dotnet build NodalMerge.Studio.slnx

3. Build the VS Code extension

cd clients\vscode-extension
npm install
npm run compile

4. Start the Studio host

pwsh -File .\scripts\dev.ps1
Verify it’s up:
curl http://127.0.0.1:5080/health
curl http://127.0.0.1:5080/studio/health

5. Launch the extension

Press F5 from the clients/vscode-extension directory to launch the extension in a VS Code Extension Development Host.

6. Run “NodalMerge: Open Studio”

Open the command palette (Ctrl+Shift+P / Cmd+Shift+P) and run NodalMerge: Open Studio. This opens the Control Tower — a tabbed shell with Goal Workspace, Activity Center, Model & Agent Studio, Decision Convergence, and Pathways.

7. Configure an agent profile

Before you can run a goal, define at least one agent profile in VS Code settings — this maps agent roles to an LLM provider and model:
// settings.json
{
  "nodalmerge.agentProfiles": [
    {
      "id": "orchestrator",
      "label": "Orchestrator (Claude)",
      "domain": "orchestration",
      "provider": "anthropic",
      "model": "claude-sonnet-4-6",
      "apiKeyRef": "anthropic-key",
      "systemPromptHint": "You are an orchestrator agent. Plan work, assign tasks, review results."
    }
  ]
}
provider can be anthropic, openai, or vscode-lm (VS Code’s built-in Language Model API — no API key required). Store API keys via VS Code’s SecretStorage (Ctrl+Shift+P → “Preferences: Configure Runtime Arguments”, or through the Model & Agent Studio panel’s Profiles tab).

8. Run your first goal

In the Goal Workspace topbar:
  1. Type a goal, e.g. “Add input validation to the signup form”
  2. Leave Exploration Strategy at its default (single-agent) and Review: Human Required (the default review policy)
  3. Click ▶ Run
Watch the Decision Tree populate as the orchestrator plans and workers execute. Click any node to load its timeline into the Decision Lens.

9. Review and approve the proposal

When a worker finishes, it submits a merge proposal, which routes to Decision Convergence for review (or shows up under Activity Center’s “Pending Decisions”). Inspect the diff, evidence, and rationale, then Accept Decision and Apply Decision.

Next steps