The model
Six pillars,
one binary.
fledge organizes the whole dev loop into six pillars, and these are the only things core ships. Everything else is a plugin. The vocabulary below composes the rest.
\
Extend: the protocol that lets plugins add the rest
The six pillars
Scaffold
Pick a template (built-in or remote), scaffold it, and you're writing code in under a minute.
templates init · create · validate · list · search · publish
Run
Define tasks, wire them into composable lanes, watch files for re-runs. Where fledge.toml lives.
run · lanes · watch
Spec
Every module declares a contract in specs/<name>/<name>.spec.md. Code and docs cannot drift.
spec check · init · list · show · new
AI
Provider-agnostic AI over plain HTTP. Ask about your codebase; review a diff with one model or a panel.
ai status · models · use · ask · review
Ship
Branch, commit (AI-written messages optional), push. Then bump version, changelog, tag, push.
work start · commit · push · status · release · changelog
Extend
Plugins, config, command-tree introspection, diagnostics, completions. The mechanism layer.
plugins · config · introspect · completions · doctor
Vocabulary
Six words. Everything else composes from them.
- task
- A named shell command in
[tasks]offledge.toml. Short form is a string; full form addswhen,timeout,retries. - lane
- An ordered list of steps. Steps reference tasks, run inline commands, or fan out a
parallelgroup. - spec
- Machine-checkable markdown contract per module.
fledge spec checkfails CI on drift; AI commands inject it as context. - template
- A
fledge templates init <name> --template <template>scaffold. Built-in (rust-cli, ts-bun, python-cli, go-cli, …) or pulled from GitHub. - plugin
- A
fledge-v1-protocol subprocess installed by name. Native or WASM-sandboxed. - lifecycle hook
- Plugins register
pre-lane/post-lane/pre-task/post-taskto extend any pillar.
The fledge.toml shape
Tasks are named commands; lanes compose them. A lane step references a task,
runs an inline command, or fans out a parallel group.
lint = "cargo clippy -- -D warnings"
test = "cargo test"
fmt-check = "cargo fmt --check"
[lanes.verify]
description = "Single CI gate"
steps = [
{ parallel = ["fmt-check", "lint"] },
"test",
{ run = "fledge spec check" },
]
Zero-config first
With no fledge.toml, fledge detects the
project from marker files and provides default tasks. Add a config when you want full control.
| Project | Detected by | Default tasks |
|---|---|---|
| Rust | Cargo.toml | build, test, lint, fmt |
| Node.js | package.json | test, build, lint, dev |
| Go | go.mod | build, test, lint |
| Python | pyproject.toml / setup.py | test, lint, fmt |
| Ruby | Gemfile | test, lint |
| Swift | Package.swift | build, test |
| Gradle | build.gradle | build, test |
| Maven | pom.xml | build, test |