CodeForge guide
CodeForge lets you use Claude Code from your phone. Each project gets its own GitHub Codespace, a full Linux computer in the cloud where Claude writes, runs and commits code while you watch the output live. Everything runs on your own GitHub, Claude and Cloudflare accounts.
Open CodeForgeEarly test version. Things may change or break. If something goes wrong, tell the person who shared CodeForge with you and include what the app showed.
What you need
- A GitHub account. Your projects are GitHub repositories, and they run in GitHub Codespaces.
- Claude: either a Claude Pro or Max subscription, or an Anthropic API key with credit from console.anthropic.com.
- Optional: a Cloudflare account, if you want Claude to publish the websites it builds to Cloudflare Pages.
- A phone with Chrome (Android recommended). The app works in other modern browsers too, but installing APKs only works on Android.
What it costs
CodeForge itself is free while it's in testing. You pay the services you already use, on your own accounts:
- GitHub Codespaces: personal accounts get a free monthly allowance, then usage is billed per hour of running time plus storage. Check your current allowance and spending limit at github.com/settings/billing. A codespace uses hours only while it's running. Use Standby when you're done (see When it's done).
- Claude: with a subscription, work counts against your plan's usage limits. The dollar amount CodeForge shows after each run is what it would cost at API prices, not a charge. With an API key, you pay per use.
- Cloudflare Pages: the free plan covers typical hobby projects.
Install the app
- On your phone, open this site in Chrome.
- Tap Install on the banner at the top of CodeForge, or use Chrome's menu → Add to Home screen / Install app.
- Open CodeForge from your home screen from now on.
Sign in (3 steps)
The first time you open CodeForge it shows three steps. Each one is checked before it's saved. Your Claude and Cloudflare sign-ins are saved as encrypted Codespaces secrets in your GitHub account, so your codespaces can use them. Nothing is stored on CodeForge's servers.
1. GitHub
- Tap Sign in with GitHub. The app shows a short code.
- Tap Copy code & open GitHub, paste the code, tap Continue, then Authorize.
- Switch back to CodeForge. It updates by itself within a few seconds.
CodeForge asks for access to your repositories and codespaces so it can create them for you. The Open the relay port automatically box (on by default) lets your codespaces make themselves reachable from your phone. See Privacy and security for what that means before you decide.
2. Claude
Pick one:
- Use my Claude subscription (Pro or Max). CodeForge runs Claude Code's own sign-in inside a codespace. The first time, it creates a small private repository called
codespacecontrol-setupand starts a codespace for it, which takes a few minutes. Keep the screen open.- Tap Open Claude sign-in, sign in and tap Authorize.
- Claude shows a code. Tap its Copy button.
- Come back, paste it and tap Connect. CodeForge tests the sign-in with a one-word prompt before saving it.
- Use an API key. Create a key at console.anthropic.com → API Keys, tap its Copy button, paste it and tap Check & save. The key is checked with Anthropic first.
3. Cloudflare (optional)
- Tap Open Cloudflare API tokens → Create Token → Create Custom Token.
- Add one permission: Account → Cloudflare Pages → Edit. Create it and tap Copy.
- Paste it into CodeForge, add your Account ID (the long code in your Cloudflare dashboard's address bar), and tap Check & save.
Or tap Skip for now; you can add it later under ⚙ → Sign-in & accounts.
You only do this once. On another phone, just sign in with GitHub and your saved Claude and Cloudflare sign-ins are picked up.
Start a project
New project
- Type a name for the new repository (for example
todo-app). Keep Private ticked unless you want it public. - Tell Claude what to build, as you would a developer. Be specific about what you want and where it should end up, for example: "Build a mobile-friendly todo list PWA that works offline, then deploy it to Cloudflare Pages."
- Tap Launch codespace.
Existing repo
- Tap Existing repo, search for the repository and tap it, then pick a branch.
- The prompt is optional: leave it empty to just open the codespace, or give Claude a task.
- Tap Open in codespace.
CodeForge adds one commit to the chosen branch: a folder called .devcontainer/codespace-control/ that sets up the codespace. Your own files and any existing devcontainer are left alone.
The progress bar shows each stage. A brand-new codespace takes about 3–6 minutes the first time (longer with Android tools) while it installs Claude Code. Starting it again later takes under a minute.
While Claude works
- Output streams in live: Claude's messages, the commands it runs (
● Bash …) and their results. Tap long output to expand it. - Type in the box at the bottom to give follow-up instructions. Claude remembers the conversation for that project.
- The ■ button stops the current task.
- You can leave the app or lock your phone; the work continues in the codespace and the app catches up when you come back.
- Notifications: tap Turn on on the home screen banner (or ⚙ → Notifications) to get a notification when Claude finishes, even with the app closed. Use Send test to check it works.
- Claude commits and pushes its work to GitHub as it goes, so your code is safe in the repository.
When it's done
Tap ✓ Completed (or ⋯ at any time):
| Option | What it does |
|---|---|
| ⏸ Standby | Stops the codespace. Files are kept and it stops using hours. Tap Start on the home screen to continue later. |
| ▶ Keep running | Leaves it on for more prompts or to preview the app. Codespaces also stop by themselves after a period of inactivity (set in ⚙ → Idle timeout). |
| 📁 Files | Browse the project and download single files or everything as a .zip, including work Claude hasn't pushed yet. Tap Save when the download is ready. |
| Preview :3000 / :8080 | Opens the app Claude is running, if it started a server on those ports. Sign in to GitHub in your browser if asked. |
| 🗑 Delete | Deletes the codespace. Anything not pushed to GitHub is lost; the repository stays. |
Building Android apps
- Tick Android build tools before launching. The codespace then comes with Java and the Android SDK installed. The first start takes a few extra minutes.
- Ask for an APK, for example: "Build this as an Android app and produce a debug APK." Claude puts finished files in a
dist/folder. - Open ⋯ → 📁 Files, tap the
.apk, then Save. - Open the downloaded file to install it. Android may ask you to allow installs from Chrome or your Files app the first time (Settings → Apps → Special app access → Install unknown apps).
The first Android build in a new codespace is slow (often 5–15 minutes). Later builds are much faster.
Troubleshooting
| Problem | What to do |
|---|---|
| Stuck on "Waiting for the relay" | A first start can take 6 minutes, or more with Android tools. If it's much longer, make sure Open the relay port automatically is on (⚙ → Sign-in & accounts → GitHub). Or open ⋯ → Open in VS Code (web), go to the Ports tab, right-click port 5555 → Port Visibility → Public. |
| "Invalid API key" or "Invalid bearer token" | Your Claude sign-in is wrong or expired. Redo step 2 under ⚙ → Sign-in & accounts → Claude → Change, then restart the codespace (Standby, then Start) so it picks up the new sign-in. |
| A setting changed but the codespace doesn't see it | Codespaces read your sign-ins when they start. Use Standby, then Start. |
| "GitHub sign-in is not available" | The CodeForge site isn't fully configured. Tell the person who shared it. Meanwhile you can use a GitHub personal access token (classic, with repo and codespace scopes) under ⚙ → Advanced. |
| Can't see or use an organisation's repositories | The organisation may block third-party apps. Ask an owner to approve CodeForge in the organisation's settings (Third-party access), or use a personal access token. |
| Codespace won't create | You may have used your free allowance or hit a spending limit. Check github.com/settings/billing. |
| No notifications | Allow notifications for this site in Chrome, turn them on in ⚙ → Notifications, and tap Send test. Codespaces created before you turned notifications on won't notify; open them again or create a new one. |
| Files says the codespace is too old | It was created before downloads existed. Delete the codespace and open the repo again, or use the last pushed version from GitHub link. |
| A "Not a CodeForge codespace" entry | That codespace was created outside CodeForge, so there's nothing to connect to. Tap Set up to open that repo with CodeForge instead. |
Privacy and security
Where your data lives
- On your phone: your GitHub sign-in, preferences, and recent output from your projects. Sign out (⚙) clears it.
- In your GitHub account: your repositories and codespaces, plus encrypted Codespaces secrets for Claude, Cloudflare (if added) and the relay port (if enabled).
- CodeForge's servers store nothing about you. GitHub sign-in and the Cloudflare token check pass through a small function on the CodeForge site that forwards the request and keeps nothing.
What Claude can do
- Claude Code runs without asking permission for each step inside your codespace. It can run any command, install software, change files, and commit and push to that repository. That's what makes it work from a phone.
- Content Claude reads, such as web pages, packages or issue text, could try to trick it into doing something you didn't ask. Keep an eye on what it does and review its commits.
- Every Codespaces secret available to a codespace can be read by programs running in it, including Claude. That includes the relay-port sign-in, which has access to your repositories and codespaces. If you don't want that, untick Open the relay port automatically and set port 5555 to Public yourself when needed (see Troubleshooting).
- Each codespace's connection (port 5555) is reachable from the internet, but it only accepts requests that carry your GitHub sign-in, and only from the CodeForge site.
Remove everything
- In CodeForge: ⚙ → Sign out.
- Revoke GitHub access: github.com/settings/applications → Authorized OAuth Apps → CodeForge → Revoke.
- Delete the saved sign-ins: github.com/settings/codespaces → Codespaces secrets → delete
CLAUDE_CODE_OAUTH_TOKEN/ANTHROPIC_API_KEY,CLOUDFLARE_API_TOKEN,CLOUDFLARE_ACCOUNT_IDandCODESPACECONTROL_GH_TOKEN. - Delete codespaces you no longer need at github.com/codespaces, and repositories (including
codespacecontrol-setup) if you want. - If you used an API key or a Cloudflare token only for CodeForge, delete them in the Anthropic console and Cloudflare dashboard as well.