PromptFloe Developer Docs
Build

Run an augmenter

Augmenters are file-modifying skills — /seo, /marketing, /a11y, etc. They read your app's file tree, generate a patch via LLM, and write it back. Idempotent and safe to re-run.

#Basic call

const result = await client.augmenters.run({
  alias: 'seo',
  appId: 'app_abc',
  args: 'brand: Acme, audience: small biz',
});

console.log('files changed:', result.files.length);
result.files.forEach(f => console.log(' ', f.path, f.status));

#Streaming variant

const stream = client.augmenters.runStream({
  alias: 'a11y',
  appId: 'app_abc',
});

for await (const ev of stream) {
  if (ev.type === 'started')      console.log('reading workspace…');
  if (ev.type === 'planning')     console.log('LLM generating patch…');
  if (ev.type === 'file_written') console.log('wrote', ev.path);
  if (ev.type === 'done')         console.log('applied', ev.filesChanged, 'files');
}

#Dry-run mode

Preview a patch before applying. The server runs the augmenter end-to-end but doesn't write to your workspace. Useful for showing a diff to the user before committing.

const preview = await client.augmenters.run({
  alias: 'pwa',
  appId: 'app_abc',
  dryRun: true,
});

// preview.files contains the would-be changes
preview.files.forEach(f =>
  console.log(f.status, f.path, '+' + f.added, '-' + f.removed),
);

#Request fields

FieldTypeDescription
aliasrequiredstringOne of: seo, geo, marketing, a11y, pwa, perf, auth, payments. Or a custom augmenter alias.
appIdrequiredstringThe app to modify.
argsstringFree-form arguments — same as appending after the slash command.
dryRunbooleanDefault false. When true, returns the patch without writing.
forcebooleanDefault false. When true, ignores idempotency markers and re-runs from scratch.
workspaceContextOverrideobjectPer-run override of brand voice fields.

#Response shape

FieldTypeDescription
runIdstringUnique id for this run.
filesFile[]List of files affected. Each: { path, contents, status: "created"|"modified"|"unchanged", added, removed }.
summarystringMarkdown summary of the changes for display.
idempotencyKeystringThe marker the augmenter wrote (e.g. "@seo:v3"). Used to detect re-runs.
tokensUsednumberTokens consumed.
conflictsWithstring[]Other augmenters that recently touched these files. Inspect before chaining further runs.

#Chaining augmenters

Augmenters are designed to compose. To apply several to one app, run them sequentially — each reads the latest workspace state:

for (const alias of ['seo', 'a11y', 'pwa']) {
  const r = await client.augmenters.run({ alias, appId: app.id });
  console.log(alias, '→', r.files.length, 'files');
}

#Idempotency

Each augmenter writes a small marker into the files it touches. Re-running detects the marker and only patches the parts that changed. To force a fresh run (e.g. you want to re-apply after updating workspace context), pass force: true.

#Where to go next

PromptFloe developer docs