Local, Finder-tagged kanban project management for macOS.
Kanban board · Finder tags · ordinary folders · no Forge-hosted servers.
Forge is a kanban board for project tracking built on ordinary folders and Finder tags. It is local-first: your projects live in your own directories, and Forge does not require any hosted service.
Forge is for people who think in files and folders first, and who want a transparent system built on ordinary directories, Finder tags, and markdown files.
Forge works well if you:
- Prefer plain-text, markdown-based systems you can search, diff, and version-control with git.
- Want project state driven by Finder tags (including assignees as
#Persontags). - Want a kanban view for projects without a hosted backend.
- Care about local-first privacy: Forge uses no hosted servers.
For a longer tour of concepts and workflows, see the user manual in
docs/forge-manual.md.
| Component | Description |
|---|---|
forge CLI |
Command-line interface for board views and project moves/tags |
| Forge.app | Menu bar companion and board window |
| Neovim plugin | Keymaps, commands, and dashboard integration via forge-nvim.lua |
The public site is simonab.github.io/forge
(fork:
https://<user>.github.io/<repo>/). Landing page: docs/index.html
with docs/assets/site.css and docs/favicon.svg.
The full documentation is also published as static HTML next to the landing page, generated from the same markdown as the repo (README.md, CHANGELOG.md, PRIVACY.md, docs/cli.md, docs/app.md, docs/neovim.md, docs/forge-manual.md):
Regenerate the *.html files after editing documentation:
pip install -r docs/requirements.txt # once per environment
python3 docs/build_site.pyCommit the updated HTML so GitHub Pages serves the latest content.
To publish with GitHub Pages, open Settings → Pages, set Build and deployment
to Deploy from a branch, branch main, folder /docs.
Pre-built binaries (macOS 14+, Apple Silicon arm64):
- CLI:
forge-macos-arm64.zip(includesLICENSEand install notes). - Menu bar app:
Forge-macos-arm64.app.zip— unzip and dragForge.appinto Applications. Updates use Sparkle (docs/appcast.xml): Check for Updates… and periodic automatic checks.
See all releases. Intel Macs: build from
source with build.sh. Developers syncing source via iCloud typically still use build.sh below so the CLI and app stay in sync with local changes.
# On a fresh Mac where Forge source has synced via iCloud Drive:
zsh ~/Documents/Forge/build.shThis builds the Swift project, creates /Applications/Forge.app, and registers
a Launch Agent so the menu bar app starts at login. To put forge on your
terminal $PATH, use Forge → Preferences… → Install CLI…. The script only
touches the Forge source directory, ~/.forge-build, and your local
application folders; it never sends any data off your Mac. See
setup details.
- macOS 14 or later.
- Xcode or Xcode Command Line Tools (for the Swift toolchain).
- Python 3 with Pillow (
pip3 install Pillow) if you want the generated app icon (Forge will still work without this; a default icon is used).
Run build.sh once per Mac after your Forge directory has synchronised (for
example via iCloud Drive or git). Your tasks and configuration remain plain-text
files in the Forge directory, shared across machines however you choose to sync.
- All projects are ordinary directories under your configured workspace roots. Kanban state is stored as Finder tags on those directories.
- Forge keeps small local caches for performance. It does not require any Forge-hosted backend.
- You are free to keep the Forge directory under git, on an encrypted volume, or in a local-only folder if you prefer not to sync via any cloud service.
See PRIVACY.md for a fuller description of what Forge stores, how sync works,
and how to run in markdown-only or local-only modes.
If you use an AI assistant with Forge output (for example pasting forge brief
into a chat), you can choose what fits: Ollama with the Pi coding agent for
privacy-first local inference on your Mac, or a cloud assistant when you need
more capability — Forge stays agnostic. See AI assistants and local language models
in PRIVACY.md for setup and trade-offs.
~/Documents/Forge/ Forge home (synced via iCloud Drive)
├── config.yaml Configuration (board columns, workspace roots, tags)
├── build.sh Per-Mac build & install script
├── generate_icon.py App icon generator (requires Pillow)
├── Sources/ Swift source code
├── Package.swift Swift package manifest
└── docs/ Documentation
├── cli.md
├── app.md
└── neovim.md
~/Documents/Work/Projects/ Workspace (project directories)
├── ProjectA/
├── ProjectB/
└── ...
Projects are ordinary directories. Their kanban column is stored as a Finder tag (visible in Finder and readable by Spotlight).
Start from config.sample.yaml and copy it to
config.yaml, then adjust paths and names to match your setup. Key sections:
workspace— path to the directory containing project folders.board.columns— ordered kanban columns, each mapped to a Finder tag.board.meta_tags— supplementary tags (e.g. Collab, Student, URGENT), used for per-project flags and for the board's Radar view.terminal— preferred terminal app (auto,iTerm,Terminal.app).
Source code and markdown files sync automatically via iCloud Drive. The
compiled .build directory is kept outside iCloud at ~/.forge-build (symlinked
into the source tree). Run build.sh on each new Mac to build locally.
Forge is distributed under the Apache License, Version 2.0. See the LICENSE
file in this repository for the full text.