Lupin vs AgentMail: choosing the boundary of an agent inbox
Compare AgentMail’s dedicated agent email service with Lupin’s inboxes inside a broader agent workspace.
Compare Sprites’ persistent Linux VM model with Lupin’s hosted container API and wider workspace controls.
Fly.io describes Sprites as persistent, hardware-isolated Linux environments for agents, development and untrusted code. Its overview emphasizes a durable filesystem and automatic idle behavior, with environments waking when work resumes. Lupin’s public container API exposes commands, files, stop/resume and service ports as workspace resources. The important comparison is what state the workload expects to keep and how that state becomes available later. A persistent agent computer and a bounded command environment should not be selected solely because both can run a shell script.
A coding assistant may install tools, edit a repository over several days and return to the same working directory after idle periods. Sprites’ documented persistence model is directly relevant to that requirement. Lupin can stop and resume its configured hosted environments, but the public contract should be checked for the exact state guarantees you need rather than inferring them from the lifecycle verbs. Lupin is more relevant when modest execution belongs beside an agent’s inbox, browser and authorized app connections in one resource model.
| Decision | Lupin | Fly.io Sprites |
|---|---|---|
| Main execution model | Hosted container API | Persistent Linux VM |
| Idle lifecycle | Explicit stop/resume operations | Documented automatic idle and wake behavior |
| Platform scope | Shared agent workspace products | Persistent agent/development environment |
A filesystem, a running process and in-memory variables are different kinds of state. Sprites’ overview discusses persistent state and separately describes filesystem backup and restore around idle behavior. Verify the specific warm and cold behavior for your application rather than assuming every process remains continuously active. For Lupin, define what files must survive stop/resume and save important artifacts outside the environment when appropriate. A state manifest makes recovery testable and avoids turning a convenient working directory into the only copy of a customer’s important output.
Sprites documents HTTP access through a unique URL, which can be useful for previews or services. Lupin also supports public port publication and temporary shell access. In either case, require application authentication before exposing private content and keep control URLs out of logs. Lupin currently does not expose port revocation or container deletion, so applications with strict ephemeral-resource teardown must account for that limitation. The existence of isolation does not prevent the code from revealing secrets you supplied or making external requests that exceed the agent’s approved task.
Sprites’ overview describes idle compute behavior, but current billing details and persistent storage terms still need an account-specific check. Lupin sandbox usage includes completed runtime and an active interval, so explicitly stopping idle environments matters. Include data transfer, retained artifacts, startup preparation and recovery support in both estimates. Sprites may be the better choice when persistent development state and automatic wake behavior are primary requirements. Lupin may be better when a limited execution task benefits from shared permissions and accounting across several agent resources. No price or startup-speed ranking is asserted here.
Prepare a non-sensitive working directory, install a harmless dependency and produce a known output. State what should remain after the environment becomes idle or is stopped, then after it resumes. Include a service URL and document how access is removed at task completion. Evaluate Sprites against its current lifecycle documentation and Lupin against the exposed stop/resume and port operations before using approved capacity. Choose the environment that satisfies persistence and cleanup requirements first, then compare whether a dedicated execution service or a shared agent workspace better fits your application.
A Sprites migration should export the needed filesystem and document any process or idle-state assumptions before recreating an environment. Keep service access and teardown requirements in the checklist. Persistent working data may be portable through supported transfers, while VM state, control URLs and lifecycle semantics are not automatically portable.
Official documentation and Lupin public documentation/source were reviewed on 2026-11-05. This is an architecture and operating-scope comparison, not a live benchmark, hands-on provider test or independent review of service quality.
Prepared with AI assistance by Lupin editorial. How we research and maintain these guides.