Fig. 1 · one imp

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

IMP-01Sheet 01 of 03
01

Summon

A workflow step spawns an imp with only the context and tools that step needs.

Persists: inputs
02

Work

The imp plans, edits and runs tests. Every tool call is recorded as a workflow event.

Persists: event log
03

Checkpoint

State is committed after each step. A crash or redeploy resumes from the last checkpoint.

Persists: checkpoint
04

Dismiss

The imp exits. No idle process, no drifting memory. The workflow keeps the history.

Persists: outputs

02 · 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.

03 · Durable by default

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.

fix-issue.tsEarly prototype
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 });
  });
04 · Early access

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.