Internal Agents Map

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
Approach type
Agent family
Human involvement
Varies by scope: Work-product review, Unknown. See each scope.
Interfaces
Slack, Web, Jira, Api, Scheduled
Deployment stage
Scaled
Evidence strength
Detailed primary
Entry reviewed
Copy as MDAsk ChatGPT

How it works

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

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[Source 1]

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[Source 1]

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[Source 1]

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[Source 1]

Where people stay involved

People review, approve, or guide the agent’s work here.

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 level

    Work-product review

    A person reviews the draft or implementation.

    Level 3 of 5

    • plain-language task from Slack, the Agents Portal, a trigger, or the API → validated pull request presented for human review[Source 1]
  • Supervision level

    Not classified

    • non-coding Casper work reached through the MCP Gateway, such as Jira status triage, A/B experiment checks, data analysis, and document summaries

How supervision levels work

Implementation details

Model
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.[Source 1]The template dimension and the model-family independence requirement are described; no model or vendor is named.
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.[Source 1]
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.[Source 1]
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.[Source 1]
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.[Source 1]
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.[Source 1]
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.[Source 1]
Interfaces
  • slack
  • web
  • jira
  • api
  • scheduled
[Source 1]

Mechanisms

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[Source 1]

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[Source 1]

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[Source 1]

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[Source 1]

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[Source 1]

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[Source 1]

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[Source 1]

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[Source 1]

Reported observations

These results come from the sources. Notes below each result explain what it covers and any reported limits.

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).[Source 1]

Reported by
Snap
Scope
Mergeable pull requests Casper produces each week across Snap's engineering organization

The source does not report the denominator of this figure.

Observed in July 2026

About this result
Category
Adoption output
Evidence type
Reported measurement
What it covers
Mergeable pull requests Casper produces each week across Snap's engineering organization
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[Source 1]

Reported by
Snap
Scope
Custom Casper agents created by Snap teams since general availability

The source does not report the denominator of this figure.

Observed in July 2026

About this result
Category
Implementation scale
Evidence type
Reported measurement
What it covers
Custom Casper agents created by Snap teams since general availability
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[Source 1]

Reported by
Snap
Scope
Build time for a custom on-call agent in Casper compared with an earlier from-scratch attempt

Observed in July 2026

About this result
Category
Cost latency
Evidence type
Qualitative
What it covers
Build time for a custom on-call agent in Casper compared with an earlier from-scratch attempt

Lessons

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.[Source 1]

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.[Source 1]

Reported opinion: Snap states that its target for Casper is mergeable pull requests, so the measure reflects outcomes rather than activity.[Source 1]

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.[Source 1]

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.[Source 1]

Back to agents
Improve this record

Give your coding agent the context and instructions to prepare a source-backed update.

Paste the prompt into your coding agent, then describe the correction or add a public source.

Preview prompt

Sources and research details

Citations link to the original publisher. Each source also keeps a preserved copy in the repository, so a changed or removed page stays checkable.

  1. Casper: Snap's fleet of friendly AI teammateshttps://eng.snap.com/casperEngineering blog · First party · Last source verification: 2026-09-21
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
Research details for every claim on this page
  1. Summary
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  2. Headline claim
    Statement type
    Metric
    Provenance
    Reported
    Confidence
    Medium
    Confidence reason
    Snap states the weekly volume in its own engineering blog without a denominator, a counting window, or a measurement method.
    Reported by
    Snap
    Scope
    Mergeable pull requests Casper produces each week across Snap's engineering organization
    Denominator
    Not reported
    Method
    Not reported
    Observation date
    2026-07
  3. Sandbox
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  4. Harness
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  5. Model
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  6. Interfaces
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  7. Tool access
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  8. Knowledge
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  9. Credentials
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  10. Context management
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  11. Gather, act, verify, repeat
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  12. Spin up the sandbox under the session identity
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  13. Gather context before touching code
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  14. Plan and implement the smallest safe change
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  15. Validate in the repository development environment
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  16. Iterate on failing checks
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  17. Open a casper-prefixed branch and a normal pull request
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  18. Hand the pull request to CodePal before human review
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  19. Separate execution from authority
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  20. Carry the triggering identity the whole chain
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  21. Reattach a durable session
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  22. Save a role as a Casper Agent Template
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Not assessed
    Confidence reason
    No explicit confidence assessment is recorded for this claim.
  23. Key observation
    Statement type
    Metric
    Provenance
    Reported
    Confidence
    Medium
    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.
    Reported by
    Snap
    Scope
    Custom Casper agents created by Snap teams since general availability
    Denominator
    Not reported
    Method
    Not reported
    Observation date
    2026-07
  24. Key observation
    Statement type
    Metric
    Provenance
    Reported
    Confidence
    Low
    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.
    Reported by
    Snap
    Scope
    Build time for a custom on-call agent in Casper compared with an earlier from-scratch attempt
    Method
    Not reported
    Observation date
    2026-07
  25. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    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.
  26. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    High
    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.
  27. Lesson
    Statement type
    Opinion
    Provenance
    Reported
    Confidence
    Medium
    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.
  28. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    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.
  29. Lesson
    Statement type
    Fact
    Provenance
    Reported
    Confidence
    Medium
    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.
  30. Operating model assessment
    Statement type
    Inference
    Provenance
    Catalog judgment
    Confidence
    High
    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.
    Observation date
    2026-07
  31. Operating model assessment
    Statement type
    Inference
    Provenance
    Catalog judgment
    Confidence
    Unverified
    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.
    Observation date
    2026-07