Run your agent's work as steps you can follow, check, and reuse, instead of a stream of text that buries you and then disappears. Works with the agent you already use: Claude Code, Codex, Cursor.
FAQ
flowtrace is a Claude Code plugin with 1 hand-picked skill for development work, indexed on Flowy. Install it with the command on its page. It includes make-trace. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
$ npx -y skills add AIScientists-Dev/Flowtrace --agent claude-code
Repo: AIScientists-Dev/Flowtrace
Run your agent's work as steps you can follow, check, and reuse, instead of a stream of text that buries you and then disappears.
Works with the agent you already use: Claude Code, Codex, Cursor.
What it does ยท Get started ยท Examples ยท Docs
English ยท ็ฎไฝไธญๆ
โญ If Flowtrace looks useful, star it (button's top-right) โ it's how we decide what to keep building in the open.
Real work with an agent happens as a stream of text. You run a skill and it does the whole task in one pass, or you go back and forth in a chat that keeps growing. Either way it piles up faster than you can follow, and once it is done you are left with a wall of messages.
For a quick question that is fine. For a buy or sell call, a due diligence memo, a security gate, anything you would actually need to verify or run again, it is a problem:
Flowtrace runs that same work as a trace: a flow of steps the agent moves through one at a time, each leaving its output on disk. Here is one, a buy or sell decision that ends in a fixed-format, citable PDF:
Same skills, same agent. Running that work as a trace is what changes:
Transparent. The work is a flow of steps you take in at a glance, not a thread you scroll. Each step's output is a file you open, so the intermediate work is right there instead of buried in messages.
Grounded. Every result points back to the files it came from, so you verify instead of trust.
Steerable. Fix one step and only what depends on it re-runs. The rest stays put.
Traceable. The whole run is files and git, so it does not vanish when you close the tab. Stop and resume anytime, hand it to a teammate, read the full history.
Reusable. A finished task becomes a trace you run again on new input. The method is reused, not rebuilt.
Evolving. The trace gets better the more it runs. When a step misses its bar, the next version switches to a method that clears it, and the version that passes is the one that sticks.
Structured reading. A trace exposes the work as a graph of files, not a linear transcript. The agent reads it by structure and on demand, loading a step's contract, inputs, and outputs only while working on it and following explicit dependencies rather than carrying the whole history. This bounds working context, reduces drift, and yields a representation people and agents can both inspect and extend.
You do not start from scratch. A skill, a long session, a plan, a finished run: run any of them as a trace and you get the same steps you can follow, check, and run again. Open any one to read it full size.
Not every task needs this. A quick one off, just chat. Flowtrace earns its place when the result matters enough to verify, or when you will run the task again.
The fast path is to hand the repo to an agent. Point a coding agent (Claude Code, Codex, Cursor) at this folder and say:
"Install Flowtrace and run the tailored-resume example."
It installs the CLI, builds a real trace at ~/traces/tailored-resume/, and opens the web view at http://localhost:3000, where the flow lights up step by step.
Two ways to get a trace:
Try a reference. Each example ships as a builder that creates a real trace folder and walks one full run.
bash scripts/examples/tailored-resume/build.sh # โ ~/traces/tailored-resume/
flowtrace serve # โ http://localhost:3000
Make your own. The make-trace skill turns any source (a SKILL.md, a runbook, a chat log, a finished task) into a trace. Copy skills/make-trace/ into the agent's skills directory and run /make-trace.
A run is steerable: stop at any step, change it, and the steps that depend on it re-run while the rest stay put.
git clone https://github.com/AIScientists-Dev/flowtrace.git
cd flowtrace
./scripts/install.sh # builds + symlinks flowtrace to ~/.local/bin/
Update with git pull && ./scripts/install.sh. Override the symlink target with INSTALL_DIR=โฆ. Building from source or contributing? See CONTRIBUTING.md.
Nine examples built from popular open-source skills, spanning different domains. Open any one for its flow and a one-command demo in the examples gallery:
Plus six more:
A trace is one git repository. trace.json declares the steps, their dependencies, and the final deliverable. Each run lives under runs/<run_id>/:
<trace_root>/
โโ .git/ standard git repo, the audit trail
โโ trace.json the static plan (steps + deliverable)
โโ scripts/ shared code used by 2+ steps
โโ resources/ shared static material (refs, papers, master data)
โโ steps/<step_id>/
โ โโ STEP.md per-step contract + impl hints
โ โโ scripts/ step-local code
โ โโ resources/ step-local material (figures, PDFs, fixtures)
โโ runs/<run_id>/
โโ state.json run status (sole source of truth)
โโ replies/NNNN.json append-only structured-output stream
โโ <step_id>/ run-time files (assets + scratch)
The same two-name convention (scripts/ for code that runs, resources/ for static material that doesn't) appears at both the trace root and inside each step. Anything reused across 2+ steps belongs at the trace root; single-step material stays inside the step folder. STEP.md references either with relative paths.
Every CLI write makes one git commit, scoped to exactly the paths it declares: state.json plus any --asset paths, or the new reply file plus its cited evidence paths. Scratch files stay untracked. The git history is the audit trail, and the UI can time-travel through it.
Steps pass data through files, not parameters: each step writes its output, and a downstream step reads it.
| To learn | Read |
|---|---|
| The idea, in depth | PHILOSOPHY.md |
| Driving a trace as an agent | docs/trace/CLI.md |
| Making a trace | skills/make-trace/SKILL.md, or run /make-trace |
| The format spec | SCHEMA.md and FIELDS.md |
| All examples | docs/EXAMPLES.md |
If Flowtrace is useful to you, consider starring the repo. It helps others find it.
MIT. See LICENSE.
.gitattributes
.gitignore
Cargo.lock
Cargo.toml
CONTRIBUTING.md
crates/
flowtrace-cli/
build.rs
Cargo.toml
src/
debug_watch.rs
explain.rs
format_dag.rs
git.rs
id.rs
main.rs
reply.rs
serve/
classify.rs
embed.rs
error.rs
events.rs
mod.rs
routes/
assets.rs
commits.rs
config.rs
events.rs
mod.rs
reply.rs
runs.rs
traces.rs
scope.rs
state.rs
watcher.rs
flowtrace-core/
Cargo.toml
src/
error.rs
io.rs
lib.rs
output.rs
paths.rs
schema.rs
state.rs
validate.rs
docs/
assets/
cap/
grounded-clinical.png
grounded-finance.png
hero-deliverable.png
hero-flow.png
traceable.png
examples/
distill-mind.png
dream-analysis.png
feat-distill-mind.png
feat-saas-dd.png
feat-security-cicd.png
iris-analysis.png
nested-deps.png
nvda-decision-pdf.png
nvda-decision.pdf
nvda-decision.png
paid-ads.png
research-writer.png
saas-dd.png
security-cicd.png
swe-bugfix.png
tailored-resume.png
talk-to-deck.png
hero.png
onramp/
convert.png
distill.png
handoff.png
in-loop.png
plan.png
traces-grid.gif
transparent.gif
zh/
cap/
grounded-clinical.png
grounded-finance.png
hero-flow.png
traceable.png
onramp/
convert.png
distill.png
handoff.png
in-loop.png
plan.png
transparent.gif
EXAMPLES.md
EXAMPLES.zh-CN.md
README.zh-CN.md
trace/
ARCHITECTURE.md
CLI.md
FIELDS.md
PHILOSOPHY.md
README.md
REFERENCE-TRACES.md
SCHEMA.md
frontend/
.gitignore
components.json
eslint.config.mjs
index.html
knip.json
package-lock.json
package.json
postcss.config.mjs
public/
android-chrome-192x192.png
android-chrome-512x512.png
apple-icon.png
apple-touch-icon.png
favicon-16x16.png
favicon-32x32.png
icons/
agent-actions/
copy.svg
drive_file_move.svg
share.svg
bulb.svg
discord.svg
github.svg
google.svg
linkedin.svg
logo-with-name.svg
Logo.svg
mini-dot.svg
twitter.svg
images/
404.svg
pic/
ai.svg
logo/
icon.svg
logo-light.svg
logo-only.svg
logo.svg
site.webmanifest
scripts/
screenshot-wechat-preview.mjs
sync-types.sh
src/
app/
App.tsx
favicon.ico
globals.css
styles/
base.css
tokens.css
traces/
[trace_id]/
page.tsx
TraceDetailView.tsx
useTraceDetail.ts
page.tsx
features/
trace/
api/
trace-core.ts
traces-api.ts
components/
detail/
file-preview/
file-utils.ts
FilePreview.tsx
renderers/
CodePreview.tsx
CsvPreview.tsx
DocxPreview.tsx
ExcelPreview.tsx
HtmlPreview.tsx
ImagePreview.tsx
json-shape.ts
JsonlPreview.tsx
JsonPreview.tsx
MarkdownPreview.tsx
PdfPreview.tsx
TextEditor.tsx
VideoPreview.tsx
ZoomableContainer.tsx
file-viewer/
parts.tsx
markdown/
markdown-components.tsx
MarkdownPreview.tsx
path-linkifier.tsx
node-map/
index.ts
node-map.css
NodeMapHelpers.ts
NodeMapNodes.tsx
NodeMapPanel.tsx
NodeMapView.tsx
README.md
StatusBadge.tsx
StepCard.tsx
StepCardHelpers.tsx
StepCardOutputs.tsx
StepDocsDrawer.tsx
types.ts
useNodeEnterObserver.ts
output-card/
index.tsx
lazy-mermaid.ts
OutputCard.tsx
OutputCardEvidence.tsx
OutputCardTable.tsx
shared/
FileChip.tsx
FileGallery.tsx
index.ts
StatusBadge.tsx
Suggestions.tsx
types.ts
run-history/
RunHistoryModal.tsx
thumbnails/
FileThumbnail.tsx
index.ts
useThumbnail.ts
TraceDetailHeader.tsx
TraceDocsDrawer.tsx
workspace-renderer/
blob-cache.ts
index.ts
SvgImage.tsx
WorkspaceImage.tsx
WorkspaceVideo.tsx
list/
TraceGridView.tsx
hooks/
queryKeys.ts
useTraceWorkflow.ts
lib/
file-preview-bus.ts
file-resolver.ts
file-utils.ts
paper-field-aliases.ts
trace-types.ts
workspace-utils.ts
i18n/
init.ts
main.tsx
messages/
en/
common.json
dashboard.json
navigation.json
trace.json
es/
common.json
dashboard.json
navigation.json
trace.json
ko/
common.json
dashboard.json
navigation.json
trace.json
zh-CN/
common.json
dashboard.json
navigation.json
trace.json
shared/
components/
EnhancedMarkdown.tsx
ErrorBoundary.tsx
ErrorState.tsx
layout/
AppSidebar.tsx
AppSidebarRunList.tsx
AppSidebarSessionList.tsx
PageLoading.tsx
ui/
badge.tsx
button.tsx
card.tsx
checkbox.tsx
confirm-modal.tsx
input.tsx
resizable.tsx
scroll-area.tsx
separator.tsx
sidebar.tsx
skeleton.tsx
sonner.css
sonner.tsx
tooltip.tsx
lib/
api-client.ts
api-url.ts
citation-resolver.ts
date-utils.ts
errors.ts
logger.ts
sse-client.ts
utils.ts
styles/
design-tokens.ts
index.ts
tailwind.config.ts
tsconfig.json
vite.config.ts
LICENSE
README.md
scripts/
_find_flowtrace_bin.sh
cli-smoke.sh
cli-stress.sh
demo-dream-animate.sh
demo-dream-replies.sh
examples/
_lib.sh
distill-mind/
build.sh
fixtures/
intake/
persona_brief.json
known_traits/
known_traits.json
novel_inferences/
novel_inferences.json
persona_skill/
SKILL.md
research_1/
01-writings.json
research_2/
02-conversations.json
research_3/
03-expression-dna.json
research_4/
04-external-views.json
research_5/
05-decisions.json
research_6/
06-timeline.json
synthesize/
framework.json
triple_verify/
verification.json
template/
resources/
request.md
steps/
intake/
STEP.md
known_traits/
STEP.md
novel_inferences/
STEP.md
persona_skill/
STEP.md
research_1/
STEP.md
research_2/
STEP.md
research_3/
STEP.md
research_4/
STEP.md
research_5/
STEP.md
research_6/
STEP.md
synthesize/
STEP.md
triple_verify/
STEP.md
trace.json
dream-analysis/
build.sh
fixtures/
dream_report_v2.pdf
dream_report.pdf
dream-imagery-alt.png
dream-imagery-v2.png
dream-imagery.png
freud-displacement.png
generate.R
jung-shadow-anima.png
notes.md
pattern-viz.png
template/
README.md
steps/
analyze_dream/
STEP.md
analyze_patterns/
scripts/
analyze.py
STEP.md
gather_context/
... 678 moreยฉ 2026 Flowy ยท Free and open source
Built for Claude Code ยท Not affiliated with Anthropic