Changelog
What changed in each release of fold.
-
You can see why a worker failed and start it in a new Claude Code session while keeping its task claims. The main agent also has its own area for project setup work.
Workers and sessions
- Choose New session on the Agents screen or run
fld worker restart <name>. The worker keeps its name, claims, and workers it started. Its new session receives the review comments, conflicts, and failed checks it needs to address. You can ask the main agent to restart a worker too. - Failed turns show their errors on the Agents screen and in the top bar. After three turns fail without reaching a model, Needs you shows Model access and fold notifies the main agent and the worker's starter.
- The Agents screen shows session IDs and transcript paths. Run
fld transcript <agent>to get the current transcript path, or add--tail Nto read its last N lines. Earlier worker session IDs remain available.
Work for the main agent
- Use the built-in area
mainfor work the main agent builds itself, such as project instructions and checks configuration. The task area menu includes Main agent and Decide automatically. - You approve proposals from
mainby default. Reviewer agents do not take these tasks, and the main agent can approve its own work only with your explicit permission for that task. When a task leavesmain, fold removes the review requirement it set for that area.
Agent instructions
- All agents receive default engineering practices, including passing checks, recording changes through fold, and writing in Simplified Technical English. Your instructions, project rules, role limits, and approved scope take priority. Agents request fixes for failing checks outside their own work.
- The fold skill also includes a local reference for checks, configuration, commands, and tools, so agents can look these up when planning work.
Improvements and fixes
- The daemon reads your login shell's environment at startup to find
claudeandgit.fld doctorchecks the Claude Code installation and sign-in state that workers use. Runfld restartafter changing your shell setup. - Leads receive waiting tasks and reviews when the daemon restarts or a pause ends. Claims held by stopped or failed workers do not hide that work.
- Sessions keep receiving notices after daemon restarts, including sessions that started before their agent registered. The app and
fld doctorshow agents that fold cannot reach. - When a workspace matches its submitted version, board cards and task details show that version and what it awaits. Workers do not appear stalled while their proposals wait for others. Their stall time starts again when changes, conflicts, or failed checks need attention.
- fold ignores model placeholders in Claude Code error messages and repairs affected workers at their next start.
start_workernames the existing lead when it resumes one.- Message recipients appear once, and diff selections explain why you cannot add a comment.
- The web app uses fold's conductor icon.
Breaking changes
- The area and label
mainare reserved. The area cannot have a lead or profile, and its label cannot be renamed or deleted. Review agents cannot claim, batch, or approve its tasks. - The database upgrade stops if another area owns the
mainlabel. It also stops if an existingmainarea has another label, a lead, or a profile. The error gives the recovery steps.
Install or upgrade
Install or update fold:
curl -fsSL https://omukk.dev/fold/install.sh | shThe installer puts
fldin~/.local/bin. SetFOLD_VERSIONto choose a release orFOLD_INSTALL_DIRto choose another folder.After updating, run
fld restartto use the new version.Binaries support Linux x86_64 and aarch64, and macOS 13 or newer on Apple silicon. Linux binaries are static. The web app comes with
fld.Use Claude Code 2.1.299 or newer and sign in before starting fold. Projects with Git require Git 2.36 or newer.
- Choose New session on the Agents screen or run
-
Run
fld restartafter an update to start the new daemon and resume workers in their saved sessions. This release also adds task area controls and an uninstaller.Updates and restarts
fld restartstops the daemon cleanly and starts the installed version. It uses your systemd service or launchd agent when available, or starts the daemon in the background.- Workers can start and resume with fold tools after the installer replaces
fld, including while the daemon runs the previous version. - During a service stop, logout, or reboot, the systemd service lets the daemon stop its workers cleanly. Workers across all projects stop together and keep their sessions for the next start.
- Run
curl -fsSL https://omukk.dev/fold/install.sh | sh -s -- --uninstallto uninstall fold. On a terminal, choose whether to removefldand its service, fold's Claude Code configuration entries, and fold's settings and data. Without a terminal, the script removes onlyfldand its service. Each project's.foldfolder stays.
Task areas and labels
- The New task dialog includes an Area choice, with Let the main agent decide as the default. Add labels that do not represent areas in the Labels field.
- Task details have separate Area and Labels controls. Change the area in one operation, or add, create, and remove other labels.
- When the main agent assigns an area to a ready task, fold offers the task to that area's lead. If the area has no lead, the main agent receives it.
Improvements and fixes
- Agent chips in the top bar show worker state, including paused workers and failure reasons. Connected sessions show their presence.
- A worker that cannot find
fldor connect its fold tools at startup stops and appears in Needs you. fold notifies the main agent and the worker's starter. - Workers with these failures keep their claims while their leases remain valid. The next daemon start retries them once in their saved sessions, provided
fldexists. In a paused project, recovery waits until you resume it. - Resuming a worker waits for its previous process to exit, so two processes cannot run the same session.
Breaking changes
- A task can have at most one area label. Update integrations and agent commands that assign multiple area labels. Other labels have no limit. Tasks without an area wait for the main agent to choose one.
- Existing tasks with multiple area labels keep them and show an area conflict. You can edit their titles and descriptions, but a label update must leave at most one area label.
- Defining an area cannot give an existing, unarchived task a second area. Remove conflicting area labels from those tasks before defining the new area.
Install or upgrade
Install or update fold:
curl -fsSL https://omukk.dev/fold/install.sh | shThe installer puts
fldin~/.local/bin. SetFOLD_VERSIONto choose a release orFOLD_INSTALL_DIRto choose another folder.After updating, run
fld restartto use the new version.Binaries support Linux x86_64 and aarch64, and macOS 13 or newer on Apple silicon. Linux binaries are static. The web app comes with
fld.Use Claude Code 2.1.299 or newer and sign in before starting fold. Projects with Git require Git 2.36 or newer.
-
You can use fold without Git and record your own edits alongside agent work. You can also require project checks before proposals and integration, and let reviewers fix issues within the agreed task scope.
Git and your changes
- Start a project with
fld init. To use Git, runfld init --with-gitin a new folder, an existing fold project, or an existing repository. For an existing repository, fold starts fromHEADand keeps its history. - Edit the project folder, then run
fld recordto save your changes as one revision of main. Conflicts with agent work appear in Needs you. - Run
fld stashto put unrecorded changes aside,fld stash listto list them, andfld unstashto restore the newest stash. Resolve any conflict markers, then runfld record. - Manage remotes with
fld remote add <name> <url> [<branch>],fld remote remove <name>, andfld remote list. When you have one remote,fld pushandfld pullcan use it without a name. - Put local ignore rules in
.fold/exclude. They apply to the project folder and agent workspaces. Git reads the same rules when enabled.
Project checks
- Define build, test, and lint commands in
fold-checks.toml. - Proposal checks run in the task workspace or review checkout before fold creates an agent's proposal version.
- Checks with
stage = "integration"run on the merged result before it reaches main. fold processes integrations one at a time. - A required check failure blocks the proposal version or integration. Use
required = falseto report a result without blocking. Thefilespatterns select checks by changed path, andtimeoutlimits how long they run. - The proposal page shows check results and queued integrations. Changes to the checks file require human review. An invalid checks file on main appears in Needs you.
Review and agent work
- Reviewers can fix issues within the agreed task scope and submit a version under their own name. They can approve it after its checks pass. Product decisions and work outside that scope return to the author.
- When a proposal changes, the review shows its changes since the last reviewed version, with main's intervening changes kept out. fold suggests a change review or full review. The review lead can choose another scope and give a reason.
- During human review, you can edit a proposal file in the web app. The new version keeps existing agent approvals until you send it for review again. You must approve the edited version yourself.
- Leads assign task and review claims when they start workers. Task workers stop when their tasks finish.
- The main agent can map existing code into areas and, with your approval, make changes directly on main.
Improvements and fixes
- The project folder follows main with or without Git. fold preserves your unrecorded changes and waits when they conflict with main.
- With Git enabled, fold writes revisions of main as commits using your Git identity. It also records commits you make yourself.
- A Git branch switch, reset, or stash pauses folder updates and shows a recovery command.
- Needs you shows pending folder changes, conflicts with main, unstash conflicts, Git branch changes, and invalid checks configuration.
- Diffs, file views, and Markdown code blocks highlight every language Shiki provides. Commands appear as inline code, and the web app includes a favicon.
- fold asks for your name once per device. When creating a Git repository, it asks for a Git name and email only if Git has none.
- fold writes its instructions into the file Claude Code reads. The first
fld claudeorfld setupasks to add fold to your Claude Code user configuration. - When you delete a project's
.foldfolder, fold closes the project and removes it from the registry. You can initialize the folder again withfld init. - Plain
fld initrejects folders inside another Git repository, even when Git is not installed.
Breaking changes
- Replace
fld init --from-gitwithfld init --with-git. Plainfld initcreates a project without Git. - Replace
fld remote setwithfld remote add <name> <url> [<branch>]. To change a remote, remove it withfld remote remove <name>, then add it again. - Only the main agent and area leads can claim tasks. Only the main agent and review lead can claim reviews. Workers receive their claims through
start_worker. - Rename
batch_reviewertoreviewerin.fold/config.tomland custom role files in.fold/roles/. - Project history starts at
r0: an empty tree for a new project, or the existing Git commit atHEAD.
Install or upgrade
Install or update fold:
curl -fsSL https://omukk.dev/fold/install.sh | shThe installer puts
fldin~/.local/bin. SetFOLD_VERSIONto choose a release orFOLD_INSTALL_DIRto choose another folder.Binaries support Linux x86_64 and aarch64, and macOS 13 or newer on Apple silicon. Linux binaries are static. The web app comes with
fld.Use Claude Code 2.1.299 or newer and sign in before starting fold. Projects with Git require Git 2.36 or newer.
- Start a project with
-
fold is a local-first development platform for working with AI coding agents. Describe the work in Claude Code, approve the plan, and agents build and review it in parallel, each in its own task workspace.
Features
- Reviewer agents inspect and test proposals; approved work is integrated in dependency order, and tasks marked for human review wait for your approval
- A live web app at 127.0.0.1:7420 shows the board (Backlog, Todo, In Progress, Review, Done), running agents, proposals and activity; Needs you collects questions, permission requests and reviews
- Works with Git:
fld init --from-gitkeeps an existing repository's history, andfld remote set,fld pushandfld pullexchange changes with a remote fld claudeandfld newopen the main agent session;fld pauseandfld resumestop and resume all workers;fld doctorchecks the installation and suggests fixes
Install
- Binaries for Linux x86_64 and aarch64 (static, any distribution) and macOS 13+ on Apple silicon; the web app is built into
fld curl -fsSL https://omukk.dev/fold/install.sh | sh(setFOLD_VERSIONorFOLD_INSTALL_DIRto pick a release or folder)fld setupstarts the daemon at login, with a systemd user service on Linux and a launchd agent on macOS
Requirements
Git and Claude Code 2.1.299 or newer, signed in.





