AI Agent
A coding assistant that runs in a full sandbox during your session. It writes code, runs it, shows live previews, and syncs everything to your team in real time.
Every participant in a session can run their own AI agent. The agent has a full development environment (Ubuntu, Node.js, package managers, the works) and can write code, run it, start servers, and show you live previews. Everything it creates syncs to all participants through the CRDT, so the whole team sees changes as they happen.
Starting your agent
- Open the agent panel with
]or the chord shortcutG A. - Click "Start Agent".
- You'll see a four-step setup process:
- Creating sandbox (provisioning the container)
- Syncing project files (pulling your project files into the sandbox)
- Installing Claude Code (setting up the coding tools)
- Starting agent (ready to go)
Each step shows a progress indicator. You can cancel at any point during setup.
Tip
Any authenticated team member can start their own agent. Guests can view agent interactions and send messages, but they can't start or stop an agent.
Talking to the agent
Text input
Type your message in the composer at the bottom of the agent panel and hit Send (or press Enter). While the agent is working, the Send button turns into a Stop button so you can cancel mid-response.
Referencing files
Type @ in the composer to browse the sandbox filesystem. A dropdown appears showing files and folders. You can:
- Navigate directories by selecting folders
- Search by typing a path (e.g.,
@src/components/Button) - Select a file to attach it as context
Selected files appear as chips above the input. The agent receives the full file content (up to 100KB per file, 10 files max) alongside your message, so it has the context it needs without you having to paste code.
Voice input (push-to-talk)
If you're on a call with your microphone unmuted, you can talk to the agent:
- Hold the backtick key (
`) to start speaking. Release to send. - Or click the mic button in the composer toolbar. Click again to send, or press Escape to cancel.
Your speech is transcribed in real time and appears in the composer as you speak. After you release the key, there's a short delay to catch any final words before the message is sent automatically.
Note
Voice-to-agent requires four things: you need to be in a call, your mic needs to be unmuted, the transcription service needs to be connected, and an agent needs to be running. If any of these aren't met, the mic button is greyed out with a tooltip explaining why.
Bookmarked prompts
If you find yourself sending the same kinds of instructions repeatedly, save them as prompt bookmarks. See Bookmarks for details.
When you click a prompt bookmark:
- If the agent sidebar is open, the prompt loads into the composer as a draft so you can review and edit before sending.
- You can also configure prompts to send immediately on click.
- Prompt bookmarks work across projects in a Space. If the bookmark was created in a different project, Stoa navigates you there first.
What the agent can do
The agent runs in a full E2B sandbox with:
| Resource | Spec |
|---|---|
| OS | Ubuntu 24.04 |
| CPU / RAM | 8 vCPU, 8 GB |
| Runtime | Node.js 22 (LTS) with npm |
| Pre-installed | TypeScript, tsx, vitest, prettier, eslint, Biome, ripgrep, git, curl, sqlite3 |
| Session length | 55 minutes (hard cap at 60) |
Within that environment, the agent can:
- Read and write files. Changes sync to all participants in real time through the CRDT. Everyone sees the update in their editor immediately.
- Install packages.
npm install,pip install, whatever the project needs. - Run code. Execute scripts, run tests, start servers.
- Start web servers and show live previews. When the agent starts a dev server, a preview appears directly in the panel (see below).
- Access voice transcripts. The agent can read what's been said in the session using
intent web transcripts list, so it has context from your conversation. - Access extracted decisions. It can also read decisions from the session using
intent web decisions list.
Live app preview
When the agent starts a web server (e.g., npm run dev), an App Preview bar appears above the chat. Click it to expand an inline iframe showing the running application.
The preview supports:
- Port selector when multiple servers are running
- Refresh to reload the preview
- Fullscreen mode (closable with Escape)
- Open in new tab to view in a full browser window
- Resizable by dragging the bottom edge
This means your team can watch a prototype come together live during a meeting. The agent writes the code, the preview updates, and everyone sees it.
Agent output
Agent responses render with full Markdown support:
- Code blocks with syntax highlighting (adapts to your light/dark theme)
- Math formulas via KaTeX
- Mermaid diagrams for architecture and flow visualizations
- File paths mentioned in responses are clickable and navigate directly to the file in the editor
Tool call display
When the agent uses tools (reading files, editing code, running commands), each tool call appears as a pill. Pills with detail content show a chevron indicator and expand on click:
- Edit / MultiEdit shows a syntax-highlighted diff
- Write shows the file path and content
- Bash shows the command, exit code, and separates stdout/stderr
- Read shows the file content
- Grep shows the search pattern, match count, and results
Pills without meaningful detail (like simple reads or generic completions) render as static labels. Status indicators show whether each operation is running, done, failed, or cancelled.
Multiple agents in one session
Every team member can run their own agent simultaneously. When more than one agent is active, a tab bar appears at the bottom of the agent panel. Each tab shows the person's name and a status dot (green for running, amber for stopped).
You can:
- Switch between agents by clicking their tab
- View anyone's conversation (read-only for their history, but you can send messages to their agent too)
- See what others are typing in real time (drafts are broadcast to all participants viewing the same agent)
- Start your own with the "+ Start My Agent" button, even while viewing someone else's
Each agent runs in its own independent sandbox. Files are synced through the shared CRDT, so work from different agents merges automatically.
Timeout and recovery
The sandbox runs for 55 minutes from when it's created (hard cap at 60 minutes, enforced by the sandbox provider).
- A live countdown appears in the agent panel header.
- When less than 5 minutes remain, the timer turns amber.
- When time runs out, a warning banner appears: "Agent session expired."
- Click "Start Agent Again" to create a fresh sandbox. Your project files will be synced again, but the conversation history from the previous sandbox is gone.
Note
Conversation history is stored inside the sandbox. It survives page reloads and reconnections, but once the sandbox is destroyed (timeout or manual stop), the history is cleared. The next agent session starts fresh.
When someone else starts an agent
If another participant starts an agent, you see their setup progress in real time (a banner showing "Alice is starting an agent (42%)..."). Once their agent is ready, you can switch to their tab to follow along, send them messages, or start your own.
You don't need to start your own agent to participate. You can send messages to any running agent in the session.
Permissions
| Action | Team member | Guest |
|---|---|---|
| Start / stop their own agent | Yes | No |
| Send messages to any agent | Yes | Yes |
| View all agent conversations | Yes | Yes |
| See sandbox status and previews | Yes | Yes |
| Destroy another user's agent | No | No |