FAQ
Questions people ask about Codemany: what runs where, your data, setup, pricing, uninstalling and support.
Basics
What runs where?
Everything that touches your code runs on your Mac. Codemany.app and its codemany daemon register a fresh, single-use GitHub Actions runner for each job; the job runs on your Mac and reports to GitHub. GitHub still schedules the jobs and shows the logs. Our servers only issue licenses (api.codemany.com) and serve this site and the downloads.
Do I have to keep the app open?
No. Jobs run in the background service, which keeps running when the app is closed.
How many jobs run at once?
As many runners as your Mac holds: by default 1 on an 8 GB Mac and 3 on a 16 GB one.
What do I change in my workflows?
One line: runs-on: [self-hosted, codemany].
What tools do jobs get?
Whatever is installed on your Mac: your Xcode, Homebrew packages, Docker Desktop and so on. Nothing is preinstalled for you. Codemany detects and checks them by running each one (every 30 minutes, and in Settings › Toolchain or codemany doctor), so you can see what a job will find before it fails. Runners also get labels for what they can do: xcode-26.0 for the selected Xcode, and docker while Docker is running. New runners pick up changes, and self-hosted, codemany and your own labels stay the same, so a job can ask for runs-on: [self-hosted, codemany, xcode-26.0]. Downloads by actions/setup-* are cached on your Mac between jobs.
Your data and security
What data leaves my Mac?
- To GitHub: the API calls a runner needs, made directly with your token.
- To us: your GitHub id, login and email when you start a trial or subscribe, a hashed device id and your Mac's name, and a daily license check. Bug reports only when you send one.
- To Stripe: your payment details, on Stripe's checkout page.
- To PostHog: anonymous usage stats (counts, job minutes and dollars saved, the kind of Mac), on by default.
Your GitHub token stays in Codemany's Keychain vault (com.codemany.vault) on your Mac. Codemany sends anonymous usage stats: counts and sizes, never names, code or tokens. Turn them off in Settings › General. Details: Privacy Policy.
Is it safe?
A self-hosted runner is not a sandbox. Only run workflows you would run in your own terminal.
- Public repos are opt-in. Codemany refuses a public repository unless you opt in for that repo, and it also refuses one whose fork pull-request approval setting is too weak or whose workflows use risky triggers. It re-checks every 30 minutes, because a repo can be made public later.
- One runner per job. Each job gets a just-in-time registration and a fresh copy of the runner; its work directory is wiped afterwards.
- Isolation modes.
host, the default and today's only released mode: jobs run as your macOS user.user(a separate, hidden macOS user per runner, wiped after each job) andvm(a clean macOS VM per job, experimental) are being explored and are not released. - Credentials. The token's Keychain item trusts only Codemany.app and its daemon. The LAN dashboard is read-only from other devices unless you set an admin token.
Questions about the security model? DM @arpwal on X.
Setup
What do I need?
- A Mac with Apple silicon on macOS 14 or later, or a Linux machine with systemd (Ubuntu 22.04+, Debian 12+ and other glibc distros; x86-64 or ARM64).
- A GitHub account that can add self-hosted runners to the repository or organization (repo admin, or org owner).
- Workflows that say
runs-on: [self-hosted, codemany]. Sample workflow.
Does it run on Linux?
Yes. On a Linux desktop, install the app: it starts Codemany and walks you through setup, like on a Mac. On a server or VM, run curl --proto '=https' --tlsv1.2 -fsSL https://codemany.com/install.sh | sh and open the setup link it prints from any browser. Jobs target runs-on: [self-hosted, Linux, codemany].
How do I open the dashboard from another device?
On the same network, open codemany.com/open, or go straight to http://codemany.local:8825. Every machine running Codemany keeps that name, and whichever answers shows all your machines. If that name doesn't resolve, try http://<machine-name>.local:8825; the app shows its address under the bottom-left menu. Changes from another device need the admin token.
Pricing and accounts
How much does it cost?
$20/month includes 2 machines, Mac or Linux; each extra machine is $10/month. So 3 machines are $30/month and 5 are $50/month. It starts with a 14-day free trial for up to 2 machines, with no card. Buy in the app or the dashboard after signing in with GitHub: download Codemany to start. Cancel anytime from Manage Subscription in the app. Refunds within 14 days of a charge: see the Terms. A license keeps working for 7 days offline.
What happens when the trial ends?
New runners stop until you subscribe; jobs already running finish. Subscribing costs $20/month for 2 machines.
Who needs a subscription?
The GitHub account or organization that owns the repositories. One subscription per owner: an organization's subscription covers all of that organization's repos, and your personal account's covers your personal repos. If one machine runs jobs for your personal repos and for an organization's, you need a subscription for each, and that machine counts once in each.
- Personal account: you subscribe for yourself.
- Organization: an admin of the organization starts the trial or subscribes. Any member of the organization can then add their machine to it. Someone who leaves the organization loses their machines on it.
- Repos you don't own: Codemany shows them, but they need their owner's subscription. Ask an admin of that organization.
Can it run jobs for an organization?
Yes, if your GitHub account can add self-hosted runners to the organization (org owner). The organization needs its own subscription, started by an org admin; it covers all of its repos.
How do I add or remove a machine?
In the app or the dashboard: open the license settings, which list every machine on the subscription with when it was last seen. Whoever pays can add a machine (+$10/month, charged pro rata now) or remove one (credited pro rata). You can also change the number of machines in the billing portal (Manage Subscription). Removing a machine frees its place for another; an old machine is never removed for you, so remove the ones you no longer use.
Can I move my subscription to another Mac?
Yes. Remove the old Mac from the subscription in the app, then add the new one. 2 machines are included; each extra one is $10/month.
Uninstall and support
How do I uninstall it completely?
- Cancel your subscription first (Manage Subscription in the app). Uninstalling does not cancel it.
- Let running jobs finish, then choose Settings › Fleet › Stop & Uninstall. This stops the runners and removes Codemany's background item (its LaunchAgent).
- Quit Codemany and move
/Applications/Codemany.appto the Trash. - Remove its files and Keychain items in Terminal:
rm -rf ~/.codemany # settings, runners, job work dirs, logs, license
rm -rf ~/Library/Application\ Support/Codemany \
~/Library/Application\ Support/com.codemany.app \
~/Library/Caches/com.codemany.app
rm -f ~/Library/LaunchAgents/com.codemany.daemon.plist # only from 0.2 or older
defaults delete com.codemany.app
security delete-generic-password -s com.codemany.vault # GitHub token
security delete-generic-password -s com.codemany.app.license # license, if present
On GitHub, remove "Codemany" under Settings › Applications (or delete the token you gave it), and delete any offline runners left under the repo's Settings › Actions › Runners.
How do I get help?
Send a direct message to @arpwal on X. For bugs, use Report a Bug in the app: it files an issue for us and shows you exactly what it sends. Release notes are on the changelog.