Skip to content

Repository files navigation

Atelier

A macOS app for running several AI coding agents side by side, one per git worktree. Each workstream is a branch, a worktree, and a terminal running the Coding Agent, plus tabs for its diff, its dev server, and an editor. Terminals are GPU-rendered through libghostty.

A personal fork of Factory Floor and Vibefloor.

Install

Download the DMG from Releases.

Builds are ad-hoc signed and not notarized — this project has no Apple Developer account. macOS quarantines the downloaded DMG, so open the app once via right-click → Open, or clear the attribute:

xattr -d com.apple.quarantine /Applications/Atelier.app

A locally built app is unaffected. See docs/distribution.md.

Build from source

Requirements and commands are in CONTRIBUTING.md. The short version:

git submodule update --init
xcodegen generate
./scripts/dev.sh br

Project layout

Atelier creates worktrees beside the repository when the project uses a bare-repo container — a .bare directory with a .git file next to it — so a worktree for /repos/app lands at /repos/app/<name>. Any other layout falls back to ~/.atelier/worktrees/<project>/<name>.

To set a repository up that way:

git clone --bare git@github.com:org/project.git .bare
echo "gitdir: ./.bare" > .git
git config remote.origin.fetch "+refs/heads/*:refs/remotes/origin/*"
git fetch --all --prune

Then park HEAD on a scratch branch so the default branch is free to be checked out as its own worktree:

# fish
set def (git symbolic-ref --short HEAD)
git config wt.default $def
git branch root $def
git symbolic-ref HEAD refs/heads/root
git worktree add $def
# bash
def=$(git symbolic-ref --short HEAD)
git config wt.default "$def"
git branch root "$def"
git symbolic-ref HEAD refs/heads/root
git worktree add "$def"

Keyboard shortcuts

Shortcut Action
⌘I Info tab
⌘↩ Focus Coding Agent
⌘1–9 Switch to tab by position
⌘⇧[ / ⌘⇧] Cycle tabs
⌘W Close tab
⌘[ / ⌘] Cycle workstreams
⌘↑ / ⌘↓ Cycle projects
⌘0 Back to project
⌘⇧R Rename workstream
⌘⇧W Archive workstream
⌘⇧↩ Start / Rerun
⌘⇧C Toggle sidebar
⌘⇧P Command palette
⌘P Find file (editor)
⌘S / ⌘⇧S Save / Save As (editor)
⌘L Address bar (browser)
⌘⌥B Open in external browser
⌘⌥T Open in external terminal
⌘/ Help

Configuration

Per-project commands live in .atelier.json at the repository root:

{ "setup": "cmd", "run": "cmd", "teardown": "cmd", "seed": "config/secrets" }

These come from the repository, so Atelier asks for approval before running any of them, and asks again whenever they change. seed names a directory whose contents are copied into each new worktree — that is how uncommitted .env files reach a workstream. It defaults to .atelier-seed.

License

MIT. See LICENSE.

About

AI-powered development workspace for macOS. Git worktrees, coding agent sessions, and dev servers in a single native app.

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages