Put our imps to work.Ephemeral agents. Durable workflows.
imp is an ephemeral agent framework for the software lifecycle. Each task summons a short-lived agent, an imp, inside a durable workflow. The imp does one job and exits. The workflow remembers everything, survives crashes and retries, and hands off to the next imp.
Life of an imp
Summon
A workflow step spawns an imp with only the context and tools that step needs.
Persists: inputsWork
The imp plans, edits and runs tests. Every tool call is recorded as a workflow event.
Persists: event logCheckpoint
State is committed after each step. A crash or redeploy resumes from the last checkpoint.
Persists: checkpointDismiss
The imp exits. No idle process, no drifting memory. The workflow keeps the history.
Persists: outputs02 · Across the SDLC
Plan
Triage issues, draft specs and break work into steps a single imp can finish.
Build
Write code on a branch, run the suite and iterate until it is green.
Review
Read diffs against the spec and leave line-level comments, or wait on a human.
Ship
Cut the release, watch the rollout and open a rollback when signals turn.
The imp is temporary. The work is not.
Write the lifecycle as ordinary code. Each step is checkpointed, so a failed test, a crashed worker or a human review that takes three days picks up exactly where it stopped. Imps never hold state between steps, so there is nothing to drift and nothing to clean up.
import { workflow, imp } from "@impso/sdk";
export const fixIssue = workflow("fix-issue",
async (ctx, issue) => {
const plan = await imp("planner").run(ctx, { issue });
const patch = await imp("coder", { tools: ["git", "test"] })
.run(ctx, { plan });
await ctx.waitFor("review.approved");
return imp("shipper").run(ctx, { patch });
});Summon your first imp
We are onboarding teams in small batches. Drop us a line and we will send the SDK and a workflow to start from.