Skip to main content
TerrariumOpen Terrarium

Control plane for coding agents

Put coding agents to work.

Publish a focused agent. Delegate from Linear or GitHub. Follow isolated runs from task to human review.

Illustrative run · Fictional data throughout · A pull request is one possible output

Linear EXAMPLE-24

Make waiting states
easier to spot.

Frontend maintainer

Terrarium RunsEXAMPLE-24

Clarify waiting states

Completed

Frontend maintainer v3

Repository
example/workspace
Environment
Isolated sandbox

Timeline

  1. Run started

    Linear task attached to a dedicated session.

  2. Output recorded

    Waiting states clarified. Changes ready for human review.

Pull request #42

Clarify waiting states
GitHub

From delegation to review

The agent does the task.
Your team owns the workflow.

A control plane is the place your team defines an agent, gives it repository access, sends it work, and follows what happens next. Terrarium connects those decisions to a run instead of leaving the result in a separate conversation.

For engineers, engineering leaders, and platform teams delegating scoped repository work. Keep Linear and GitHub as the source of the task; use Terrarium to configure execution and inspect the handoff.

  1. 01Publish the role

    Instructions, model, capabilities, and allowed repositories.

  2. 02Send the task

    A request with an outcome, context, and constraints.

  3. 03Follow the run

    Its own session and sandbox, with visible state and timeline.

  4. 04Review the result

    Inspect available evidence and any linked output.

01 / Define the agent

A role you can publish.
Not a prompt you must repeat.

Give an agent a specific job and durable operating instructions. Choose a supported model, inspect its available capabilities, and attach only the repositories it should work with.

Publishing creates an immutable version. New runs use a published version, and the version used stays attached to each run—even when you later edit the draft.

About model selection
Illustrative configuration · Not interactive

Frontend maintainer

Published v3

Focused interface changes in example/workspace

System instructions · Example excerpt

  • Keep the requested interface change focused.
  • Follow existing component patterns.
  • Check narrow layouts and keyboard use.
  • Report changes, checks, and unresolved risks for review.
Model
Claude Sonnet · Illustrative selection
Available capabilities
Read file, write file, shell, ask question · Platform catalog excerpt
Allowed repository
example/workspace
Repository settings
Base branch: main · Writes enabled

Choose from the supported language models currently listed in the editor. Capabilities come from the platform catalog and reviewed organization connections, not arbitrary uploaded code.

02 / Send the task

Delegate where the work already lives.

Start directly in Terrarium, use a Linear Agent Session, or mention the installed app in a GitHub conversation. Provider-originated work stays connected to its source.

In Terrarium

Choose a published Coding Agent and an allowed repository. Confirm the branch and access, then describe the change and expected validation.

Alternative launch · EXAMPLE-24

Frontend maintainer v3 · example/workspace

Make waiting states easier to spot. Check the narrow layout and keyboard focus.

An alternative manual launch—not a second request in the Linear run below.

In Linear

Delegate an issue to the installed app, or mention it in a comment to start a supported Agent Session. Follow the task in its issue context.

Example issue · EXAMPLE-24

Make waiting states easier to spot.

Delegated to Frontend maintainer · This is the source used in the story below.

In GitHub

Mention the installed app in an issue or pull request conversation. Give it a bounded request tied to that discussion.

Alternative entry · Example conversation

Please check the waiting-state treatment in this change, including keyboard focus.

An alternative launch path—not another event in EXAMPLE-24.

Provider setup comes first. GitHub repository access and Linear workspace authorization must be in place. New native GitHub and Linear app setup may need an operator; it is not universally self-service. These are supported intake paths, not support for every provider event. See prerequisites ↓

03 / Follow one connected run

Know what went in.
See what comes back.

EXAMPLE-24 follows Frontend maintainer v3 in example/workspace. This fictional sequence ends with the possible pull request shown above. It illustrates the record—not a promise that a run will finish or produce code.

Illustrative prompt & context · Initial Linear attempt

EXAMPLE-24 / Selected context

“Make waiting states easier to spot.”
Published agent
Frontend maintainer v3
Repository / base branch
example/workspace / main
Task context
Linear issue request

Manual and Linear attempts capture redacted prompt and context snapshots. Inspect what is available; a snapshot is not promised for every intake path.

An example path to handoff

  1. 01
    Request attached

    The run records the source task and published agent version.

  2. 02
    Isolated run started

    A dedicated session and Vercel Sandbox prepare the selected repository and branch with configured access. Conversation state and working files are separate from other tasks.

  3. 03
    Completed · Example outcome

    In this illustration, output is recorded as pull request #42, “Clarify waiting states.” A run can expose commit or pull request links when it produces them.

  4. 04
    Human review

    Read the output, inspect the diff, verify checks and behavior, and decide whether to accept the change. A completed run is not an automatic merge.

Other possible states

Not every run takes that path.

These are alternatives to the completed example above, not later events in its timeline.

Waiting for input

A run may pause for clarification or approval. Inspect the request and provide the missing context. Active or waiting runs with an executor session can receive follow-up input.

Failed or canceled

Review the recorded state and available timeline to understand where work stopped. Completed, failed, and canceled runs cannot receive follow-up input. Do not assume an output exists.

04 / Stay in control

Give it room to work.
Keep the boundaries explicit.

Isolation, repository settings, and provider credential separation each have a specific job. They do not replace clear task instructions or your team's code review.

Repository and branch
Organization access and the agent's allowed repositories constrain the execution target. Configure a base branch and whether repository write actions are allowed. This is not a per-file permission system.
A separate workspace
Each task has its own session and sandbox, rather than sharing conversation state or a working filesystem with another run.
Provider credentials
Vercel Connect holds GitHub and Linear credentials outside agent prompts and repository sandboxes. Terrarium stores organization-scoped installation references, not those provider OAuth tokens. This is a specific credential boundary, not a zero-secrets guarantee.
Human review
Review code, checks, and behavior before accepting a change. Agent-initiated Linear updates through the platform connection are currently unavailable. This does not disable Linear task intake. Humans decide what to merge; Terrarium does not automatically merge, deploy, or release it.
Illustrative boundary record · EXAMPLE-24

Frontend maintainer v3

Allowed repository
example/workspace
Base branch
main
Repository access
Writes enabled
Task environment
Dedicated session + sandbox

Current limit · Linear updates

Agent-initiated Linear updates through the platform connection are currently unavailable.

This limit concerns updates, not Linear task intake. Task instructions such as “keep changes focused” are not per-file enforcement.

Practical starting points

Start with a task you can review.

Hypothetical engineering tasks you might delegate—not packaged features, customer stories, or guaranteed outcomes.

01 / Interface work

Clarify a confusing state

Input
An issue describing a hard-to-see waiting state, like EXAMPLE-24.
Requested scope
Existing status components, narrow layout, and keyboard focus. Avoid unrelated UI changes.
Human review
Visual behavior, accessible labels, focus treatment, and any changed tests.
02 / Repository maintenance

Remove a deprecated helper

Input
A named helper, known callers, and the replacement pattern.
Requested scope
Migrate those call sites without redesigning the surrounding module.
Human review
Remaining references, compatibility, diff scope, and validation results.
03 / Test coverage

Cover an edge case

Input
A reproducible bug and the expected behavior of an existing function.
Requested scope
Add focused tests using the repository's current test patterns.
Human review
Whether assertions catch the bug, test reliability, and any unexpected code edits.

Requested scope guides the task. Repository read/write settings are not per-file restrictions.

Getting started

Set up the context.
Then send one focused task.

You need a Terrarium account and organization, access to the intended GitHub repository, and the appropriate permissions to configure connections, repositories, and agents.

Linear intake also needs an authorized workspace and installed app. Confirm provider availability with your organization's operator before relying on a channel.

Open Terrarium
  1. Sign in and choose your organization

    Use your existing organization, or create an organization through workspace setup. Ask an owner or admin if you need access or configuration permissions.

  2. Connect and import the repository

    In Connections, confirm organization GitHub access. In Repositories, import a repository visible to that installation; set its base branch, read/write access, and any setup and validation commands.

  3. Create and publish a Coding Agent

    Set its model and instructions, review available tools, and attach allowed repositories. Save the draft, then publish a version. Per-agent provider setup lives in Channels; GitHub and Linear setup may require an operator.

  4. Queue a run and review its record

    In Runs, select the published agent and allowed repository, confirm the branch and access, and enter task instructions. Follow status and timeline, respond when input is needed, and review any linked output.

Before you delegate

A few useful details.

Which models can I choose?

The agent editor lists supported language models from AI Gateway. Select from that current catalog rather than assuming every model or provider is available. The Claude Sonnet label in this page is an illustrative selection, not a fixed model list. Your chosen model is part of the published agent version.

Can I connect Linear and GitHub myself?

Do not assume universal self-service setup. Organization connections and per-agent native Channels are separate. GitHub needs installation access to the intended repository; Linear needs workspace authorization and an installed app. New native GitHub and Linear app setup can require an operator, and Linear installation is not available to every customer workspace. Check the setup state with your organization's operator.

What limits an agent's repository access?

The organization, published agent's allowed repositories, branch settings, and repository read/write setting constrain its target and write actions. A manual run selects an allowed repository and can specify a starting branch override. Instructions can ask for a narrow change, but they are not per-file permissions.

Does every run create a pull request?

No. A run can expose linked commits or pull requests when it produces them. Inspect available artifacts and references in its record; some sections may be empty until relevant data is emitted. A completed status does not prove that checks passed or that a change is ready to merge.

What if a run waits or fails?

Waiting means the executor is paused at a boundary and may need context or approval. Inspect the request before responding. Failed means execution stopped before completion: review the available timeline and error context, correct the cause, and decide whether to start a new task. No commit, pull request, or successful validation is guaranteed.

Can I send a follow-up after a run finishes?

No. Follow-up input is available for active or waiting runs with an executor session. Completed, failed, and canceled runs cannot receive it. If you need more work after a terminal state, start a new task with the relevant context.

What does my team still need to review?

Define the task and access, answer clarification requests, and verify the output. Check the code, tests, behavior, and remaining risks before accepting a change. Agent-initiated Linear updates through the platform connection are currently unavailable; Linear Agent Sessions remain a task entry path. Your team owns merge decisions; Terrarium does not automatically merge, deploy, or release code.

Scoped work. Visible handoff.

Put an agent to work.
Keep the review yours.