Talk to Claude or Codex from the browser. Replies stream in as they're written, chats render as Markdown, and every session is backed by a sandbox you can start fresh or pick from the ones you already have.
Overview
Web chat for agents is here. Talk to Claude or Codex from the browser, watch the reply stream in as it's written, and pick the conversation back up later. Chats live under Agent Chats in the sidebar, and every sandbox page can start one or reopen an old one.
What's new
Agent Chats
Each agent chat session is linked to a sandbox, and a sandbox can have multiple concurrent agent chat sessions.
Send a message on a new session and Amika spins up a sandbox for you automatically, or select an existing sandbox and open a new chat session there.
Replies stream in real time. The agent's answer arrives token by token instead of appearing all at once when the turn ends. The amika send CLI shares the same send path, so it streams too.
Chats render as Markdown. Bold, italics, inline code, fenced code blocks with language labels, lists, headings, links, and tables all render properly.
Sandboxes
Start a chat against a sandbox you already have. "New Agent Chat" on the sandbox page opens a chat routed into that sandbox instead of provisioning a fresh one. The repo is already known, so there's no picker to fill out.
Past chats are listed on the sandbox page. A Chat sessions section below Coding Agent shows that sandbox's earlier conversations with a message preview, agent, status, and last-updated time. Click one to reopen it.
The pi harness is available in sandboxes, alongside claude, codex, and opencode.
Elsewhere
Clickable table rows work from the keyboard. Sandboxes (list and grouped views), repositories, Slack installations, and chats are all focusable and open on Enter or Space.
Assign a Linear ticket to Amika and it works the issue end to end, plus a rebuilt SSH layer with per-user key auth, sandbox services you can create on the fly, snapshots that work across repositories, and a web app that finally works on mobile.
Overview
Amika works in Linear now. Assign a ticket and it reads the issue, picks the repo, does the work, replies in the thread, and moves the ticket across your board.
Sandboxes get a rebuilt SSH layer with per-user key authorization, services you can expose at any time instead of only at creation, and snapshots that are no longer tied to the repository they were captured on.
The web app also works on mobile now, so you can kick off a run or check on one from your phone. Web terminal and web chat for agents are coming soon.
What's new
Linear
Assign a ticket to start a run. Amika moves it from To Do to In Progress when it picks up the work, and to In Review when it finishes.
It reads the ticket. The issue title, description, and labels go into the first turn, so the agent works the actual ticket instead of a bare mention.
repo: labels route work. Label an issue repo:api and Amika works in that repo, overriding your org default.
One sandbox per ticket. Every comment on an issue shares a single sandbox and one continuous agent context, so follow-ups pick up where the last one left off.
Connect from the integrations page, where you can also set the default repository and coding agent for tickets that don't specify one.
SSH
A real SSH layer.amika sandbox sshv2 opens an interactive shell, or runs a single command with amika sandbox sshv2 <name> <command>. amika scpv2 copies files, and sftp works too. Your ssh flags pass straight through, so port forwards work like they do anywhere else. Running a one-off command and copying files both failed on the old layer.
Per-user key authorization. Access is granted by public key per user, so you control exactly who can reach a sandbox.
Manage your SSH keys from the new settings page, or stay in the terminal: amika secret ssh-keygen creates and uploads a key, and amika secret ssh-key list and delete handle the ones you already have.
Cursor, Claude Desktop, and Codex all open from amika sandbox codev2.
Sandboxes
Create services on the fly. Sandbox services used to be fixed at creation time. Now amika service create exposes a new service on a running sandbox and gives it a real URL.
Snapshots work across repos. A snapshot used to be locked to the repository it was captured on. Now any snapshot can start any sandbox, so one setup can be shared across all your repos. Manage them under Settings, Sandboxes.
Elsewhere
No more GitHub PATs. Connect your GitHub account and start creating sandboxes. There's no personal access token to generate, paste, or rotate.
Personal API keys, alongside the organization-scoped ones, so sandboxes and agents act as your user with your settings.
--output json on the CLI commands that return data, in the same shapes the API returns. Commands that open a shell, an editor, or a browser stay interactive.
The web app works on mobile. The dashboard, sandbox pages, detail panels, forms, and menus all lay out properly on a phone instead of squishing.
In-app support chat, reachable from anywhere in the app.
Copy files to and from sandboxes with amika scp, manage sandbox snapshots from the CLI and TypeScript SDK, watch live setup progress, and open any sandbox directly in CMUX.
Overview
This release adds amika scp for moving files into and out of a sandbox over SSH, and brings sandbox snapshots to full parity across the CLI and TypeScript SDK so you can capture a sandbox and reuse it as a starting point elsewhere. Sandbox status is now more accurate and visible, with live setup progress as a sandbox comes online, and sandboxes are more resilient to setup and shutdown hiccups. You can also open a sandbox directly in CMUX.
What's new
File transfer
amika scp: Copy files to and from a sandbox over SSH with a single command. It supports the SSH options you'd expect — host keys, jump hosts, IPv6 addresses, custom ports, and more — so it drops into existing SSH-based workflows.
Snapshots
Snapshot management: Create, list, and delete sandbox snapshots with amika snapshot create, list, and delete, and start a new sandbox from a saved snapshot with sandbox create --snapshot.
TypeScript SDK support: Snapshots are now available in the TypeScript SDK too, so you can capture and restore sandbox state from your own code, not just the CLI.
Visibility
Live setup progress: The sandbox list and detail pages now show real-time progress while a sandbox is being prepared, and refresh automatically until it's ready.
Open in CMUX: Launch a sandbox directly in CMUX from the sandbox page (Daytona sandboxes only).
Reliability
Sandbox status is now more accurate and consistent across providers, with a clear distinction between a sandbox that's spinning up and one that's finished setting up.
Sandboxes stay usable even if VM initialization fails partway through.
Stopping a sandbox is more reliable, including for sandboxes that are still starting up or already suspended.
General improvements to sandbox startup reliability.
First-class sandbox snapshots with secure capture and per-repo defaults, per-workspace Slack settings with gate cards and grouped sandbox view, zero-config Playwright MCP, and Cursor SSH aliases.
Overview
This release makes sandbox snapshots a first-class feature: capture,
label, and reuse sandbox state as a starting point for new sandboxes,
with credential scrubbing baked in. The Slack integration gets
per-workspace settings, a configurable system prompt, interactive gate
cards before dispatching an agent, and a grouped sandbox view tied to
the originating Slack conversation. Developer tooling adds zero-config
Playwright MCP and stable per-sandbox Cursor SSH aliases.
What's new
Snapshots
Snapshot management: Create, label, and browse snapshots from the
sandbox page. Sandboxes track which snapshot they started from, and
you can pick a saved snapshot when creating a new sandbox.
Per-repo default snapshot: Repositories can configure a default
snapshot that new sandboxes use automatically. You can override or
skip it per sandbox.
Secure capture: Credentials, env files, and agent data directories
are scrubbed before a snapshot is saved. A snapshot-and-delete flow in
the UI makes the process explicit.
Reliable activation: Snapshot timeouts are raised (15 min capture,
10 min activation). If capture fails, the sandbox stays active.
Slack
Per-workspace settings: Each connected Slack workspace now has its
own settings page for repo binding, agent defaults, and a custom
system prompt.
Gate cards: The bot posts an interactive card before dispatching an
agent, so you can confirm, redirect, or cancel from Slack.
Grouped sandbox view: Sandboxes are grouped by the Slack workspace
and conversation that created them, with workspace branding and the
triggering thread shown inline.
Developer tools
Playwright MCP: Playwright is available as a zero-config
integration in all sandboxes, running headless with no setup required.
Cursor SSH: A stable per-sandbox SSH alias lets you open Cursor
directly into any sandbox and reconnect after restarts.
amika sandbox ls --long: The sandbox list is trimmed by default;
pass --long to see all columns.
Reliability
Claude OAuth tokens are refreshed server-side before injection. If a
token is dead, the UI surfaces a re-auth error rather than silently
failing.
SSH access tokens include sandbox ID and name and are valid for a full
working day.
Sandboxes return to active state after a failed snapshot attempt, so
you don't lose your work.
Automated repo workflows on sandbox creation, per-thread Slack agent and repo selection, a new TypeScript SDK, larger sandbox sizes, and CLI auto-detection of your current git repo.
Overview
This release introduces repository workflows that run automatically when
a sandbox is created, a Slack bot upgrade that lets each thread pick its
own repo and coding agent, and a TypeScript SDK for driving sandboxes
from your own code. The CLI now infers your git repo from the current
directory, sandbox sizes expand to L and XL, and sandbox creators are
visible throughout the app.
What's new
Repository workflows: Define TOML-based workflows per repo and
edit them in a node-graph canvas. Workflows run automatically when a
sandbox is created, and live workflow events stream into the sandbox
page as they execute.
Slack agent picker: When @amika is mentioned in a new Slack
thread, users can choose which repo and which coding agent (Claude or
Codex) to use for that thread. Channels can set defaults so common
cases skip the picker entirely.
TypeScript SDK: An npm-installable client for the hosted HTTP
API covering the full sandbox lifecycle (create, wait, agentSend,
delete). The SDK version is pinned to the matching Amika CLI release
and published via a gated npm workflow.
L and XL sandbox sizes: Pick larger sandboxes from the
create-sandbox dialog. A tooltip shows the specs for each size.
Sandbox creator visible everywhere: Both amika sandbox ls and
the web sandbox list now show who created each sandbox.
CLI auto-detects your repo: amika sandbox create infers the
git repo from your current directory. Pass --git <url|path> to
override, or --no-git to opt out. The repo column is also now
shown in amika sandbox ls.
start.sh hook: Define a start.sh that runs on every sandbox
start (not just create), alongside the existing setup.sh. Useful
for commands that need to run on resume as well as initial setup.
Slack integration for triggering agents from your workspace, org-scoped Claude and Codex credentials, and a new start_script repo config option.
Overview
This release ships the Slack bot integration, letting teams trigger and
receive amika agents directly from Slack. It also adds org-level
credential management so teams can share a single Claude or Codex API
key, and extends repo config with a start_script option.
What's new
Slack integration: Connect amika to your Slack workspace from the
Integrations page. Once configured, you can message the bot directly
(DMs are supported, not just thread replies) and it will run an agent
and post results back to the thread. Errors surface in the thread
too, so you're not left guessing if something went wrong.
Slack repo binding: In the Integrations settings, you can bind a
Slack workspace to a specific repository so the bot knows which repo
to operate on by default.
Org-scoped Claude and Codex credentials: Admins can now set a
Claude or Codex API key at the org level. Individual users can still
provide their own key and it will take precedence, but teams no
longer need every member to configure credentials separately.
start_script in repo config: .amika/config.toml now accepts
an optional start_script under [lifecycle], alongside the
existing setup_script. It runs on amika start — i.e. when you
resume a stopped sandbox — making it the right place for commands
that bring your app back up after a stop/resume cycle.
Better API docs: The interactive API reference now uses Scalar,
and llms.txt endpoints are available for LLM-friendly API
discovery.
Versioned API (v0beta1), agent credential selection, Slack workspace integration, async agent-send, and settings reorganization.
Overview
This release introduces a public, versioned API at /api/v0beta1/
with interactive docs and an OpenAPI schema. Alongside that, it
delivers a redesigned credential management experience: you can now
control which AI credentials are injected per sandbox from the UI
dialog, the CLI, and a repo-level config default in
.amika/config.toml. The settings page is reorganized into dedicated
subpages and repositories get a clickable detail view.
Agent credential selection: When creating a sandbox, you now
choose which stored credential to inject for each agent (Claude,
Codex) from a picker in the Create Sandbox dialog. The dialog
pre-selects based on repo-config defaults, then your most recently
added credential. You can also explicitly skip injection for a given
agent. Set a repo-level default in .amika/config.toml under
[agent_credentials].
CLI credential flags: amika sandbox create now accepts
--agent-credential <kind>=<name> to pick a credential by name,
--agent-credential-type <kind>=<type> to pick by credential type
(oauth or api-key), and --no-agent-credential <kind> to skip
injection entirely for that agent. <kind> is claude or codex.
Slack bot token credentials: You can now store a Slack bot token
as an org-shared credential in Settings, making it available to
agents that interact with Slack.
Settings page reorganization: Settings is split into dedicated
subpages (API Keys, Secrets, GitHub, Claude Code, Codex, OpenCode).
The sidebar expands to show these when you navigate to Settings.
"Integrations" is renamed to "MCP Servers".
Repositories detail view: Clicking a configured repository on the
Repositories page now opens a dedicated detail page
(/repositories/<id>) with the full edit form. Size, preset, and
custom Docker image settings are grouped together under a toggle.
Detailed
CLI
Added --agent-credential <kind>=<name>,
--agent-credential-type <kind>=<type>, and
--no-agent-credential <kind> flags to amika sandbox create for
controlling which credential is injected for each agent when
creating a remote sandbox. <kind> is claude or codex. Without
any flag, the CLI sends an opt-in signal so the server can apply
your repo-config defaults or auto-select.
The --size flag is now validated before sending the request. An
unrecognized value gives an immediate error rather than a server
failure.
All CLI API calls now use the versioned /api/v0beta1/ endpoints,
required alongside the server update in this release.
UI
The Create Sandbox dialog now shows a credential picker for each
agent (Claude, Codex). It pre-selects based on repo-config defaults
declared in .amika/config.toml under [agent_credentials], then
falls back to your most recently added credential. Selecting "None"
explicitly skips injection and overrides any repo-declared default.
When the repo declares a preference you cannot satisfy (wrong type,
missing credential), an inline warning explains the fallback.
Settings is split into dedicated subpages: API Keys, Secrets, GitHub,
Claude Code, Codex, and OpenCode. The sidebar expands to show these
when you navigate to Settings. "Integrations" is renamed to "MCP
Servers" throughout the app.
The Repositories page now lists your configured repositories at the
top. Clicking a repository opens its own page (/repositories/<id>)
with the full edit form. Sandbox size/preset and custom Docker image
are grouped under a segmented toggle on the detail page.
Credentials
Slack bot token is now a supported credential type. Add one under
Settings so agents that interact with Slack can authenticate. Slack
bot tokens are shared across your organization (org-scoped) rather
than being per-user.
When a sandbox is created with a missing or unauthorized credential,
the API now returns a descriptive error code (for example,
agent_credential_not_found) that the CLI surfaces directly instead
of a generic failure.
Service-derived env vars in config.toml, Codex support for agent-send, and SSH environment improvements.
Service-Derived Environment Variables
Define environment variables in .amika/config.toml that automatically resolve to your sandbox service URLs and ports
Works alongside existing env var types (plaintext values and secret references) in the [env] section
Resolved variables are available in both command execution and SSH sessions
CLI v0.5.2
agent-send now supports Codex agents -- send tasks to Codex-powered sandboxes alongside Claude
Sandbox Improvements
Environment variables (injected, service-derived, and lifecycle) are now written to /etc/environment, making them available in SSH login, interactive, and non-interactive shell sessions
MCP integrations, multi-agent support, auto-branch creation, CLI improvements, and more.
MCP Integrations
New Integrations page for connecting third-party tools to your sandboxes
Connect Sentry and Linear via OAuth — credentials are automatically configured in your sandbox environment
Manage integrations per-organization from the sidebar
Multi-Agent Support
Connect your own Codex credentials to use alongside Claude in sandboxes
Choose which agent credentials to use when creating a sandbox
Codex CLI is auto-configured in sandboxes when credentials are connected
Sandbox Improvements
Auto-branch creation: A new git branch is automatically created for each sandbox, with the option to override the generated name or use an existing branch
Searchable branch picker in the Create Sandbox dialog
CLI
agent-send now works over the API instead of SSH, with session management for ongoing conversations
Added ls shorthand for list commands (sandbox ls, service ls, volume ls, secret claude ls)
Added rm shorthand for secret claude delete
Added secret codex push, secret codex list, and secret codex delete commands for managing Codex secrets
Added --no-setup flag to sandbox create to skip running setup scripts
Sandbox list is now sorted by most recently created
Fixed shell prompt colors on light terminal backgrounds
Sandbox containers now include .bashrc alongside .zshrc
API
API errors now return structured JSON with consistent error codes
Non-existent API routes return a proper JSON 404 instead of HTML
OpenCode Credentials
Store and manage your OpenCode credentials from the Settings page
Credentials are securely resolved from the vault and injected into sandboxes on create and start
Bug Fixes and Improvements
Sandbox start and stop operations now return immediately with status polling in the background
If sandbox setup fails, the error is now surfaced directly in the UI
Improved sandbox detail page layout with refreshed icons and a proper 404 page
Improved error messages for agent-send authentication failures