Step 1 of 10

Launch the Session

5of 10~5 min
  • The session start workflow
  • How Agent Mail threads work
  • Verifying session initialization
What you'll do
  • Create a session thread
  • Send kickoff to all agents
  • Verify messages were delivered

Now comes the exciting part — launching the multi-agent session. The brenner CLI will send role-specific kickoff messages to each agent via Agent Mail.

1Spawn Your NTM Session & Set Variables

First, define your session ID and spawn the multi-agent panes using ntm spawn.

Terminal
# Create a unique session ID
export SESSION_ID="RS-$(date +%Y%m%d)-cell-fate"
export PROJECT_KEY="$(pwd)"
# Spawn Claude Code (2), Codex (1), Gemini (1), and Antigravity (1) panes
ntm spawn "$SESSION_ID" --cc=2 --cod=1 --gmi=1 --agy=1
# Verify pane health via robot snapshot
ntm --robot-snapshot --session="$SESSION_ID"

2Launch via Brenner CLI or NTM Pipeline

You can launch role-separated kickoffs directly with brenner session start or run a declarative ntm pipeline from /brennerbot-with-ntm:

Terminal
# Option A: Launch via brenner CLI + Agent Mail
brenner session start \
--project-key "$PROJECT_KEY" \
--thread-id "$SESSION_ID" \
--sender Orchestrator \
--to BlueLake,PurpleMountain,GreenValley \
--role-map "BlueLake=hypothesis_generator,PurpleMountain=test_designer,GreenValley=adversarial_critic" \
--kickoff-file sessions/$SESSION_ID/kickoff.md \
--excerpt-file excerpt.md
# Option B: Run the automated 10-phase NTM YAML pipeline
ntm pipeline run .ntm/pipelines/brenner-Standard.yaml \
--session="$SESSION_ID" \
--var session_id="$SESSION_ID" \
--var question="How do cells determine their position?"

What this command does:

  1. 1Registers the Orchestrator agent in Agent Mail
  2. 2Creates a thread with the session ID
  3. 3Sends role-specific kickoff messages to each agent
  4. 4Returns confirmation with message IDs

3Verify Messages Were Sent

Check that all three agents received their kickoff messages:

Terminal
# Check session status
brenner session status --thread-id "$SESSION_ID"
# View the thread
brenner thread view --thread-id "$SESSION_ID" --limit 5
# Check each agent's inbox
brenner inbox --agent BlueLake --limit 3
brenner inbox --agent PurpleMountain --limit 3
brenner inbox --agent GreenValley --limit 3

Understanding Agent Mail Threads

Agent Mail organizes messages into threads. Each session has its own thread ID.

Thread: RS-2026-0105-cell-fate
├── [Orchestrator → BlueLake] KICKOFF: hypothesis_generator role
├── [Orchestrator → PurpleMountain] KICKOFF: test_designer role
├── [Orchestrator → GreenValley] KICKOFF: adversarial_critic role
└── (awaiting agent responses...)
Pro Tip
You can watch the session in real-time with: brenner session status --thread-id "$SESSION_ID" --watch. This shows new messages as they arrive.

Session Launched? If you see three KICKOFF messages in the thread, you're ready to run the agents in the next step.