Source: https://internal-agents.com/agents/snap-casper

# Snap — Casper

Casper is Snap's fleet of remote coding agents. An engineer describes a task in a Slack DM, a channel mention, or the Agents Portal, and Casper starts a durable session in an isolated sandbox, gathers context from the trigger and from Code Search, plans and implements the smallest safe change, validates it, and opens a pull request that CodePal reviews before a person does. Teams save no-code Casper Agent Templates that fix the instructions, tools, runtime image, triggers, and model for a recurring role, and the same engine reaches beyond code through Snap's MCP Gateway.

- Company: [Snap](https://internal-agents.com/organizations/snap)
- Collection: Agents
- Approach type: Agent family
- Deployment stage: Scaled
- Autonomy: Drafts reviewed
- Evidence strength: Detailed primary
- Status: Internal
- First reported year: 2026
- Work: Coding, Maintenance, On-call, Data
- Interfaces: Slack, Web, Jira, Api, Scheduled
- Invocation: Interactive, Background, Scheduled, Event-driven
- Entry reviewed: 2026-09-21

## Purpose

### Summary

Casper is Snap's fleet of remote coding agents. An engineer describes a task in a Slack DM, a channel mention, or the Agents Portal, and Casper starts a durable session in an isolated sandbox, gathers context from the trigger and from Code Search, plans and implements the smallest safe change, validates it, and opens a pull request that CodePal reviews before a person does. Teams save no-code Casper Agent Templates that fix the instructions, tools, runtime image, triggers, and model for a recurring role, and the same engine reaches beyond code through Snap's MCP Gateway.

Fact · Reported · High confidence · `snap-casper--summary`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 12, 63, 87-89, 105

Representative workflow: Plain-language task from Slack, the Agents Portal, or a trigger through an isolated sandbox session to a pull request presented for human review.

## How it works

### Spin up the sandbox under the session identity

Casper starts a durable session, spins up a fresh isolated sandbox, and loads the Casper Agent selected for the target repository and task

Fact · Reported · High confidence · `snap-casper--primitives-1`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 46, 87

### Gather context before touching code

Casper reads the triggering Slack thread, the Jira ticket, linked documents, repo-level rule files, repository guidance, team-authored skills, and relevant history, and reaches across Snap through Code Search to find ownership, reuse established patterns, and inspect downstream callers in other repositories

Fact · Reported · High confidence · `snap-casper--primitives-2`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 47, 87-89

### Plan and implement the smallest safe change

Casper determines which tools it has access to, finds the right ones for the task, plans the smallest safe change, and edits the working tree, asking the human for approval where needed

Fact · Reported · High confidence · `snap-casper--primitives-3`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 48, 91

### Open a casper-prefixed branch and a normal pull request

Casper pushes a branch with the casper/ prefix and opens a pull request wired into existing workflows, following team conventions and templates

Fact · Reported · High confidence · `snap-casper--primitives-6`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 51, 93

## Where people stay involved

- **plain-language task from Slack, the Agents Portal, a trigger, or the API → validated pull request presented for human review** — Work-product review · Level 3
- **non-coding Casper work reached through the MCP Gateway, such as Jira status triage, A/B experiment checks, data analysis, and document summaries** — Unknown · Level unknown

**Reported:** Casper may pause to ask a clarifying question or present a plan to approve, engineers can join a running session to update the instructions, and the pull request follows the same review and approval process as any other change.

### Supervision evidence

#### Operating model assessment

Level 3 for plain-language task from Slack, the Agents Portal, a trigger, or the API → validated pull request presented for human review; human attention boundary: work-product-review.

Inference · Catalog judgment · High confidence · `snap-casper--operating-models-0`

Confidence reason: The run anatomy ends at a pull request presented for human review, and the article states the pull request follows the same review and approval process as any other change. Approval pauses during the run are described as conditional, so attention normally returns at the work product.

Qualifications:

- Observation date: 2026-07

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 44-55, 77, 93

#### Operating model assessment

Unclassified for non-coding Casper work reached through the MCP Gateway, such as Jira status triage, A/B experiment checks, data analysis, and document summaries; human attention boundary: unknown.

Inference · Catalog judgment · Unverified confidence · `snap-casper--operating-models-1`

Confidence reason: The article lists non-coding uses such as Jira triage, A/B experiment checks, data analysis, and document summaries, but does not say who reviews those outputs or when.

Qualifications:

- Observation date: 2026-07

Evidence:

- Contextualizes · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 125

## Implementation details

### Sandbox

A fresh, isolated, disposable sandbox container per session; Casper skips per-command approvals because the blast radius is a throwaway container, and it has no access to a user's filesystem, SSH keys, or credentials. A Casper Agent Template can supply a custom container image.

Fact · Reported · High confidence · `snap-casper--architecture-sandbox`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 33-34, 46, 113

### Harness

A remote runner around the same agentic loop a local tool such as Claude Code or Codex runs - gather context, act, verify, repeat - held open as a durable session; Snap names harness-family independence as a build requirement. The workspace lifetime is separated from the compute, so the idle runtime can be torn down between turns.

Fact · Reported · High confidence · `snap-casper--architecture-harness`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 24, 30, 83, 99

### Model

Not named. A Casper Agent Template picks the model that balances quality, speed, and cost and attributes usage to a team; Snap names model-family independence as a build requirement.

Fact · Reported · High confidence · `snap-casper--architecture-model`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 24, 115

### Interfaces

slack, web, jira, api, scheduled

Fact · Reported · High confidence · `snap-casper--architecture-interfaces`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 63, 69, 73, 87

### Tool access

Snap's MCP Gateway is the standardized interface to every MCP and tool available at Snap, so a new MCP reaches every Casper agent without per-agent integration work. Source-control work goes through a narrow tool interface - checkout, Code Search, push, and pull-request operations - exposed by a trusted controller. A template can narrow the tool set for a role.

Fact · Reported · High confidence · `snap-casper--architecture-tool-access`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 95, 112, 125

### Knowledge

Code Search, the org-wide retrieval layer described in Part 2 of the series and the same context substrate CodePal uses, plus the triggering Slack thread, linked Jira tickets and documents, repo-level rule files, repository guidance, and team-authored skills.

Fact · Reported · High confidence · `snap-casper--architecture-knowledge`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 87-89

### Credentials

Execution is separated from authority - the process that edits code and runs commands holds no raw source-control credentials, and a trusted controller authorizes each call against the session identity. Interactive sessions run under a per-user identity mirrored from the triggering user; automated Casper Agents run under their own agent-scoped machine identities.

Fact · Reported · High confidence · `snap-casper--architecture-credentials`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 34, 93, 95

### Context management

A durable session that reattaches. After a turn the idle runtime can be torn down while the conversation, checkout, and branch remain, and a follow-up reply continues in the same workspace instead of starting cold. Casper can be pulled into an existing Slack thread and reads the prior messages as context, and a session owner can add a collaborator to steer the same session.

Fact · Reported · High confidence · `snap-casper--architecture-context-mgmt`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 32, 36, 63, 99

### Gather, act, verify, repeat

A repeatable session loop that Snap applies to many kinds of work and exercises end to end on a coding task, from an ambiguous request to a reviewable pull request

Fact · Reported · High confidence · `snap-casper--primitives-0`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 83

### Separate execution from authority

The process editing code and running commands holds no raw source-control credentials; a separate trusted controller exposes checkout, Code Search, push, and pull-request operations through a narrow tool interface and authorizes each call against the session identity

Fact · Reported · High confidence · `snap-casper--primitives-8`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 95

### Carry the triggering identity the whole chain

The authenticated identity follows the request from Slack or the portal into the sandbox and forward through every MCP Gateway call, and each downstream system enforces that user's existing permissions, making the gateway a single auditable choke point

Fact · Reported · High confidence · `snap-casper--primitives-9`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 127

### Reattach a durable session

The workspace lifetime is separated from the compute, so the idle runtime can be torn down after a turn while the conversation, checkout, and branch remain and a reply continues the same workspace

Fact · Reported · High confidence · `snap-casper--primitives-10`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 99

### Save a role as a Casper Agent Template

A no-code saved configuration fixes the custom instructions, tool selection, runtime container image, where the agent can be summoned and who can run or edit it, and the model and cost attribution for a recurring role

Fact · Reported · High confidence · `snap-casper--primitives-11`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 105, 111-115

### Implementation coverage

- **Model:** reported — The template dimension and the model-family independence requirement are described; no model or vendor is named.
- **Harness:** reported
- **Sandbox:** reported
- **Tool access:** reported
- **Knowledge:** reported
- **Context management:** reported
- **Credentials:** reported
- **Interfaces:** reported

## Validation and failure handling

### Validate in the repository development environment

Builds, tests, linters, and configured checks run inside the loop rather than after it, in the repository's real development environment

Fact · Reported · High confidence · `snap-casper--primitives-4`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 49, 91

### Iterate on failing checks

On a failure Casper reads the output, revises the change, and runs it again rather than handing a reviewer code that does not compile; engineers can optionally join the session and update the instructions to fine-tune the output

Fact · Reported · High confidence · `snap-casper--primitives-5`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 50, 91

### Hand the pull request to CodePal before human review

CodePal reviews the pull request immediately with findings posted in line, and Casper can address the flagged issues before the pull request is presented for human review

Fact · Reported · High confidence · `snap-casper--primitives-7`

Confidence reason: A linked first-party source states the claim.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 52-53, 93

## Reported observations

Observation: Adoption output · Reported measurement · Mergeable pull requests Casper produces each week across Snap's engineering organization

### Headline claim

Snap reports Casper producing thousands of mergeable pull requests each week across its engineering organization (self-reported, July 2026 article, no denominator or method given).

Metric · Reported · Medium confidence · `snap-casper--headline-metric`

Confidence reason: Snap states the weekly volume in its own engineering blog without a denominator, a counting window, or a measurement method.

Qualifications:

- The source does not report the denominator of this figure.
- Reported by: Snap
- Scope: Mergeable pull requests Casper produces each week across Snap's engineering organization
- Observation date: 2026-07

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 12

Observation: Implementation scale · Reported measurement · Custom Casper agents created by Snap teams since general availability

### Key observation

Snap reports hundreds of custom Casper agents created since general availability in the quarter before the article, covering on-call, project-status summaries, audit evidence checking, and test expansion

Metric · Reported · Medium confidence · `snap-casper--key-metrics-0`

Confidence reason: Snap reports a rounded count of custom agents and names the roles they cover, but dates the period only as "Since GA last quarter" and gives no measurement method.

Qualifications:

- The source does not report the denominator of this figure.
- Reported by: Snap
- Scope: Custom Casper agents created by Snap teams since general availability
- Observation date: 2026-07

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 117

Observation: Cost latency · Qualitative · Build time for a custom on-call agent in Casper compared with an earlier from-scratch attempt

### Key observation

Snap reports engineers building a custom on-call agent in Casper in a few hours after spending weeks trying to build one from scratch elsewhere

Metric · Reported · Low confidence · `snap-casper--key-metrics-1`

Confidence reason: The article reports the hours-against-weeks comparison as instances it has seen, without a sample size, a date, or a description of the earlier from-scratch attempt.

Qualifications:

- The source does not report the denominator of this figure.
- Reported by: Snap
- Scope: Build time for a custom on-call agent in Casper compared with an earlier from-scratch attempt
- Observation date: 2026-07

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 117

## Lessons

### Lesson

Snap separates execution from authority in Casper - the process that edits code and runs commands holds no raw source-control credentials, and a trusted controller authorizes each checkout, search, push, and pull-request call against the session identity.

Fact · Reported · High confidence · `snap-casper--lessons-learned-0`

Confidence reason: The architecture section states the split directly, naming the four controller operations and the per-call authorization against the session identity. It describes Snap's design, not a verified security property.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 34, 95

### Lesson

Snap propagates the triggering user's authenticated identity from Slack or the portal into the sandbox and onward through every MCP Gateway call, so a Casper session reaches only what that user can reach and each tool call stays attributable to them.

Fact · Reported · High confidence · `snap-casper--lessons-learned-1`

Confidence reason: The MCP Gateway section states that identity travels the whole chain and that each downstream system enforces the triggering user's existing permissions. The enforcement is described, not independently tested.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 63, 127

### Lesson

Snap states that its target for Casper is mergeable pull requests, so the measure reflects outcomes rather than activity.

Opinion · Reported · Medium confidence · `snap-casper--lessons-learned-2`

Confidence reason: Snap states this target for its own program in one sentence; the article does not report how mergeability is counted, and the preference is Snap's rather than general advice.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 55

### Lesson

Snap reports evaluating build against buy and choosing to build Casper because vendor coding agents did not cover interoperability with its internal services, tight integration with CodePal and Code Search, control over agent identity and access, harness and model independence, and control of a Snap-specific product experience.

Fact · Reported · Medium confidence · `snap-casper--lessons-learned-3`

Confidence reason: Snap lists the five requirements vendor solutions did not meet for its codebase. The article names no vendor or evaluation, so only Snap's account of its own decision is supported.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, line 24

### Lesson

Snap uses no-code agent templates so each team encodes its own instructions, tools, runtime image, triggers, and model instead of sharing one general-purpose agent; Snap presents this as how Casper scales across its organization.

Fact · Reported · Medium confidence · `snap-casper--lessons-learned-4`

Confidence reason: The template dimensions and the reported hundreds of custom agents support the practice. That templates are what makes Casper scale is Snap's framing, and the article reports no comparison against a single general-purpose agent.

Evidence:

- Supports · [1] [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper) · [Preserved copy](https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md) · Preserved content.md, lines 105, 107, 117

## Question coverage and scope

- **purpose:** Reported
- **workflow:** Reported
- **human involvement:** Reported — Casper may pause to ask a clarifying question or present a plan to approve, engineers can join a running session to update the instructions, and the pull request follows the same review and approval process as any other change.
- **implementation:** Reported
- **validation:** Reported
- **observations:** Reported
- **lessons:** Reported

## Related reading

- Related implementation: [Snap — CodePal](https://internal-agents.com/agents/snap-codepal)

## Sources

1. [Casper: Snap's fleet of friendly AI teammates](https://eng.snap.com/casper)
   - Engineering blog · First party · Evidence
   - Original URL: <https://eng.snap.com/casper>
   - Publisher: Snap Engineering · Published: 2026-07-28 · Accessed: 2026-09-21 · Last verified: 2026-09-21
   - Preserved copy in the repository: <https://github.com/steel-experiments/internal-agents-map/blob/main/archive/sources/snap-casper-source-1/content.md>
