Package Exports
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (fifony) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
fifony
AI agents that actually ship code. You just watch.
Point at a repo. Open the dashboard. AI plans, builds, and reviews — you approve.
Quick Start
npx -y fifony --port 4040Open http://localhost:4040. The first run launches the onboarding wizard — it detects your CLIs, scans your project, and configures everything in six steps. State lives in .fifony/. No accounts, no cloud, no external database.
How It Works
fifony breaks every task into three stages, each independently configurable:
Plan Execute Review
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
│ Claude │─▶│ Codex │─▶│ Claude │
│ Opus 4.5 │ │ │ │ Sonnet 4.5 │
│ effort: high │ │ effort: med │ │ effort: med │
└──────────────┘ └──────────────┘ └──────────────┘You set the provider, model, and reasoning effort for each stage. Claude plans, Codex executes, Claude reviews — or any combination you prefer. Configure it in the Settings UI or drop a WORKFLOW.md in your project root.
Issue Lifecycle
Planning → Todo → Queued → Running → In Review → Done
↓ ↓
Interrupted Blocked → (retry with backoff)- Create — Describe what you want done. fifony AI-enhances the title and description before planning.
- Plan — The planner agent generates a structured execution plan: phases, steps, target files, complexity, risks.
- Approve — You review the plan. Optionally chat with the AI to refine it before approving.
- Execute — Agents run in an isolated workspace (a copy of your project). Live output streams to the dashboard.
- Review — The reviewer agent inspects the diff and either approves, requests rework, or blocks.
- Merge — You review the diff and merge the workspace back to your project root.
Agents run as detached child processes, tracked by PID. If the server restarts mid-run, fifony recovers on the next boot.
Onboarding Wizard
The first run walks you through six steps:
| Step | What happens |
|---|---|
| CLI Detection | Finds claude, codex, git, node, docker, and other tools on your system |
| Project Scan | Detects language, stack, and build system — 18+ ecosystems supported |
| AI Analysis | Uses the detected CLI to extract domain context from your codebase |
| Domains | 21 options across Technical / Industry / Role, pre-selected by the AI |
| Agents & Skills | Catalog of 15 agents and 5 skills, auto-recommended for your domains |
| Effort & Workers | Per-stage reasoning effort, worker concurrency, and visual theme |
Settings are saved progressively and can be re-run from Settings at any time.
Supported build files include: package.json, Cargo.toml, pyproject.toml, go.mod, build.gradle, Gemfile, mix.exs, pubspec.yaml, CMakeLists.txt, composer.json, Package.swift, deno.json, pom.xml, Dockerfile, and more.
Dashboard
| Route | What you see |
|---|---|
/kanban |
Drag-and-drop board. Cards flow through pipeline stages. Desktop click+drag, mobile long-press. |
/issues |
Searchable list with state, label, and capability filters. Shows token usage and duration per issue. |
/agents |
Live cockpit: worker slots, queue depth, real-time log tail, token sparklines per agent. |
/discover |
Import TODOs from your codebase, GitHub issues, or AI-suggested tasks. |
/analytics |
Token usage trends, daily and weekly rollups, top issues by cost, per-model breakdown. |
/settings |
General, Workflow pipeline config, Notifications, Providers. |
The Issue Detail Drawer shows the full plan (phases and steps), all execution sessions, the workspace diff, and a per-phase token breakdown — Plan / Execute / Review — with input and output counts per model.
PWA
Install as a desktop app. Works offline. Desktop notifications when issues change state. Service worker with stale-while-revalidate caching.
Agent & Skill Catalog
fifony ships with 15 specialist agents:
| Agent | Focus |
|---|---|
| Frontend Developer | React, Vue, CSS, responsive design |
| Backend Architect | APIs, microservices, scalable systems |
| Database Optimizer | Schema design, query optimization, indexing |
| Security Engineer | OWASP, threat modeling, secure code review |
| DevOps Automator | CI/CD, Docker, Kubernetes, cloud infrastructure |
| Mobile App Builder | iOS, Android, React Native, Flutter |
| AI Engineer | ML models, LLM integration, data pipelines |
| UI Designer | Visual design, component libraries, design systems |
| UX Architect | UX patterns, accessibility, information architecture |
| Code Reviewer | Code quality, best practices, constructive feedback |
| Technical Writer | Docs, READMEs, API references, tutorials |
| SRE | Reliability, observability, incident response |
| Data Engineer | ETL, data warehousing, analytics infrastructure |
| Software Architect | System design, DDD, architectural patterns |
| Game Designer | Game mechanics, level design, cross-engine |
And 5 skills: commit, review-pr, debug, testing, impeccable (frontend design system).
Agents install to .claude/agents/ and .codex/agents/ during onboarding. Skills load from SKILL.md files in .claude/skills/, .codex/skills/, or your home directory. fifony infers the right agent from the issue description and target file paths — capability routing is automatic.
CLI Reference
# Dashboard + API + scheduler
npx -y fifony --port 4040
# With Vite HMR for frontend development
npx -y fifony --port 4040 --dev
# Headless — scheduler only, no UI
npx -y fifony
# MCP server (stdio)
npx -y fifony mcp
# Different workspace
npx -y fifony --workspace /path/to/repo --port 4040
# Run one scheduler cycle and exit
npx -y fifony --once
# Fine-grained control
npx -y fifony --concurrency 2 --attempts 3 --poll 500
# Onboarding reference repositories
fifony onboarding list
fifony onboarding sync
fifony onboarding sync --repository ring
fifony onboarding import ring --kind skills
fifony onboarding import agency-agents --kind agents --overwriteMCP Server
Use fifony as tools inside your editor:
npx -y fifony mcp --workspace /path/to/repoAdd to claude_desktop_config.json or VS Code settings:
{
"mcpServers": {
"fifony": {
"command": "npx",
"args": ["-y", "fifony", "mcp", "--workspace", "/path/to/repo"]
}
}
}Resources: state summary, all issues, workflow config, runtime guide, per-issue detail
Tools: fifony.status, fifony.list_issues, fifony.create_issue, fifony.update_issue_state, fifony.integration_config
Prompts: fifony-integrate-client, fifony-plan-issue, fifony-review-workflow
REST API
Interactive docs at http://localhost:4040/docs.
| Endpoint | Description |
|---|---|
GET /api/state |
Full runtime state: issues, metrics, config |
POST /api/issues/create |
Create an issue |
POST /api/issues/enhance |
AI-enhance title and description |
POST /api/issues/:id/plan |
Generate execution plan |
POST /api/issues/:id/plan/refine |
Refine plan with chat feedback |
POST /api/issues/:id/approve |
Approve plan, start execution |
POST /api/issues/:id/merge |
Merge workspace to project root |
GET /api/live/:id |
Live agent output: PID, log tail, elapsed time |
GET /api/diff/:id |
Git diff of workspace changes |
GET /api/config/workflow |
Pipeline workflow configuration |
GET /api/analytics/tokens |
Token usage summary |
GET /api/analytics/hourly |
Hourly usage buckets (48h retention) |
GET /api/providers |
Detected providers and availability |
GET /api/catalog/agents |
Agent catalog, filterable by domain |
POST /api/install/agents |
Install agents to project |
/ws |
WebSocket for real-time state updates |
Configuration
fifony reads a WORKFLOW.md in your project root if present. Front matter configures the pipeline; the Markdown body defines the execution contract. Settings from the UI write to .fifony/s3db/.
Environment variables (all optional when using the UI or WORKFLOW.md):
FIFONY_WORKSPACE_ROOT=/path/to/repo
FIFONY_PERSISTENCE=/path/to/state # defaults to $FIFONY_WORKSPACE_ROOT
FIFONY_AGENT_PROVIDER=codex # codex | claude
FIFONY_WORKER_CONCURRENCY=2
FIFONY_MAX_ATTEMPTS=3
FIFONY_AGENT_MAX_TURNS=4Architecture
.fifony/
s3db/ ← durable database (issues, events, sessions, settings)
source/ ← project snapshot used for workspace seeding
workspaces/ ← isolated per-issue execution directoriesfifony is split into an explicit runtime contract:
- Persistence layer (s3db.js + resource config):
- Issues, events, sessions, states, and settings are first-class resources under
.fifony/s3db/. - No external DB is required in normal mode.
- Issues, events, sessions, states, and settings are first-class resources under
- Eventual consistency analytics:
EventualConsistencyPluginis enabled for issue metrics and supports counters, incremental updates, and analytics rollups.- Metrics tracked include:
usage.tokensandtokenUsageby phase/model,eventsCount,linesAdded,linesRemoved,filesChanged.
- We query this through
getLastNDays/getLastNHoursto feed/api/analytics/linesand/api/analytics/tokens.
- Issue lifecycle in StateMachinePlugin (single source of truth):
- States, guarded transitions, actions, and triggers are centralized in
issue-state-machine.ts. - Public commands (
approve,execute,queue,retry,merge) only emit transitions; the workflow behavior is not duplicated in route handlers. - The machine also owns interruption recovery, retry delays, terminal transitions, and rollback edges.
- States, guarded transitions, actions, and triggers are centralized in
- Queue and execution pool:
s3queueis the runtime queue adapter with polling workers.- Workers consume planning/execution/review jobs and run concurrently respecting configured concurrency.
- Agent abstraction:
- fifony wraps local CLIs, not proprietary model logic.
- Per stage we configure
cli,model, andreasoningEffortindependently (planning,execute,review). - This lets you swap providers by issue without changing core orchestration.
- Per-issue isolation:
- Each issue has its own execution workspace and Git worktree branch.
- That avoids file conflicts and enables parallel work on the same repo safely.
- Review and execution observability:
- Diff stats are computed from git
--statoutput (linesAdded,linesRemoved,filesChanged). - Runtime events are emitted for state transitions, review path decisions, and merge outcomes.
- CLI output and audit trails are stored to make mid-run interruptions recoverable.
- Diff stats are computed from git
- Capability routing:
- Routing derives issue labels (
capability:<category>,overlay:<name>) from issue text and inferred file paths. - This improves queue triage and worker assignment.
- Routing derives issue labels (
Requirements
- Node.js 23 or newer
- At least one of:
claudeCLI,codexCLI
Credits
fifony is built on the shoulders of:
- OpenAI Codex CLI — Original foundation (Apache 2.0). See NOTICE and THIRD-PARTY-NOTICES.md.
- Agency Agents — Inspiration for the agent catalog.
- Impeccable — Frontend design skill by Paul Bakaus.
- s3db.js — Filesystem persistence layer.
- DaisyUI — Dashboard component library.
License
Apache License 2.0 — see LICENSE for details.
This project includes code from OpenAI Codex CLI. See NOTICE for attribution.