Circuit is a skill-based AI Agent harness editor for turning agent work into visible, repeatable, and controllable development workflows.
AI Agents are useful for development tasks like planning, implementation, and review, but the actual workflow can easily get buried in long prompts, command chains, and terminal output. As projects grow, it becomes harder to see which step is running, what has finished, and where a failure happened.
Circuit turns .claude/skills and .codex/skills in a local repository into a visual workflow. Place skills on the canvas, connect their order and dependencies, then run and inspect the whole flow from one place.
The easiest way to get started on Apple Silicon macOS is to install Circuit with Homebrew:
brew install --cask CIrcui-try/tap/circuitYou can also download the latest macOS app from GitHub Releases.
The macOS app is currently ad-hoc signed and not notarized, so Gatekeeper may require approval the first time you launch it.
You can also clone this repository and run Circuit from source.
git clone https://github.com/CIrcui-try/Circuit
cd Circuit/app
pnpm install
pnpm tauri devIf you need a local build, run:
cd app
pnpm tauri buildAfter launching Circuit, choose the repository you want to work with, then place skills from .claude/skills or .codex/skills onto the canvas to build a workflow.
The static product landing page lives at docs/index.html. To publish it with GitHub Pages, open the repository's Pages settings, choose the publishing branch, and set the source folder to /docs.
workflow.mp4
Circuit is centered on connecting skills into a workflow. You can bring in the skills you need as blocks, reorder them, connect their dependencies, and insert new steps into the flow.
For example, you can create a flow like this:
planning → implementation → review → commit
When the routine changes, the workflow can change with it:
planning → implementation → commit → review
If you need an intermediate check, add a new skill into the flow:
planning → check-token → implementation → review → wrap-up
When the context gets long, you can add a compact skill. If you want to check token usage along the way, you can create a skill such as check-token and place it between larger steps.
With Circuit, when skill order or dependencies change, you do not need to reconstruct the procedure between skills from memory. You can update the nodes and edges instead.
live_status.mp4
When a workflow runs, you can see which skill is currently running, which steps have completed, and where a failure happened through the canvas and Run Log.
Active workflows can be cancelled when needed, and failed runs are easier to inspect because the stopping point remains visible.
manage_loop.mp4
Not every workflow ends in a straight line. Some routines need repetition. For example, you may want to review a failed task again or repeat a check until a condition is satisfied.
Circuit helps you manage these repeated flows more safely. Since a cyclic graph can run indefinitely, Circuit shows a warning before execution and lets you run it only after confirming that the loop is intentional.
Because the loop remains visible on the canvas, you can see which skill will be called again and adjust the routine when needed.
cross_platform.mp4
Many projects already contain more than one kind of agent automation. Some routines may be written as Claude skills, while others may be managed as Codex skills. Within the same agent, you may also want to choose different models depending on the task.
Circuit reads .claude/skills/*/SKILL.md and .codex/skills/*/SKILL.md from your local repository and lets you place both kinds of skills on the same canvas. It does not treat Claude and Codex as competing tools. It treats them as different execution capabilities and model choices that belong to the local project.
The actual skill files remain in the repository. Circuit does not move them elsewhere or force them into a separate format. Instead, it reads the skills from the repository, shows them on the canvas, and provides a visual layer for defining their order and dependencies.
Circuit is still under active development. Bug reports, usability feedback, documentation improvements, example workflows, runtime stability work, and UI improvements are all welcome.
Small contributions are welcome too. If something was confusing while you tried the app, open an issue. If the README can be clearer, improve it. If you have a .claude/skills or .codex/skills workflow you use often, sharing that example can help a lot.
To develop locally:
git clone https://github.com/CIrcui-try/Circuit
cd Circuit/app
pnpm install
pnpm tauri devBefore opening a PR, please run the checks you reasonably can:
cd app
pnpm test:run
pnpm build
cd src-tauri
cargo testFor larger features or changes to runtime behavior, please open an issue first and share the intent. Circuit deals with local repositories and agent execution flows, so it is important to consider not only convenience but also whether users can understand and control what is happening.
Please write commit messages, PR titles, and PR descriptions in English.

