Quick Start¶
Get your first AI coding agent running in under 5 minutes.
Prerequisites¶
- Marionette installed (Installation Guide)
- An Anthropic API key (for Claude Code) or OpenAI API key (for Codex)
Step 1: Start the Server¶
Verify the server is running:
Step 2: Create a Session¶
A session is a long-lived work context that binds an AI agent to a workspace.
You'll receive a session ID like sess_0002xK9mNpV1StGXR8.
Step 3: Submit a Task¶
Now let's give the agent some work to do:
Step 4: Watch the Logs¶
Follow the agent's progress in real-time:
You'll see the agent:
- Analyzing the request
- Creating files in the workspace
- Writing code
- Testing the implementation
Step 5: Handle Permission Requests¶
When the agent needs to perform sensitive operations (like running shell commands), it will request permission:
# List pending permissions
./bin/mctl permissions list --session $SESSION_ID
# Approve a permission request
./bin/mctl permissions approve $PERMISSION_ID
# Or deny it
./bin/mctl permissions deny $PERMISSION_ID --reason "Not authorized"
Step 6: Continue the Conversation¶
Submit follow-up tasks to build on the agent's work:
./bin/mctl tasks create \
--session $SESSION_ID \
--prompt "Add a /goodbye endpoint that returns 'Goodbye, World!'"
The agent remembers the context and continues from where it left off.
Step 7: Manage the Session¶
# Suspend the session (free up resources)
./bin/mctl sessions suspend $SESSION_ID
# Resume later
./bin/mctl sessions resume $SESSION_ID
# Terminate when done
./bin/mctl sessions terminate $SESSION_ID
What's Next?¶
-
Configure providers, storage, and observability
-
Understand how Marionette works
-
Complete CLI documentation
-
REST API documentation
Troubleshooting¶
Session stuck in "pending"¶
The session is waiting for a runner. Check if runners are available:
If no runners are available, start one:
Permission request timeout¶
By default, permission requests wait 30 minutes for approval. If no response is received, the session is suspended (not failed). Resume and respond:
Connection refused¶
Ensure the server is running and check the ports: