Account
GitHub — Sync your code
Push generated apps to your own GitHub repo, open PRs for changes, and pull issues into the builder.
What you get
Your generated app gets pushed straight to your own GitHub as a real repo you own. Every iteration can open a pull request so changes are reviewable and revertable. Marnix can also read issues from your repos and turn them into prompts (“fix issue #42 for me”).
When you'd reach for this
- You want to own the code — “push this app to a new private repo called recipe-hub in my account.” Now it's yours, not ours.
- Connect to Vercel / Netlify for deploys — once code is on GitHub, any host can auto-deploy from it.
- Collaborate with a developer — they clone the repo, push fixes, you pull them back in via Marnix.
- Review every change — “open a PR for the last change so I can review before merging.”
- Codex-style fix flow — “show me my 3 most recent open issues and suggest fixes.”
- Backup insurance — if Marnix ever goes away, your code still lives in your GitHub. No lock-in.
How to connect
1. Choose your token type
GitHub has two kinds of Personal Access Tokens:
- Fine-grained (
github_pat_...) — recommended. You pick exactly which repos Marnix can touch. The rest stay completely inaccessible. Create at github.com/settings/personal-access-tokens/new. - Classic (
ghp_...) — works everywhere but grants access to ALL your repos. Use only if fine-grained isn't available for you (GitHub Enterprise older versions). Create at github.com/settings/tokens/new.
2. Set the right scopes
For fine-grained tokens, under Repository permissions:
- Contents: Read and write
- Pull requests: Read and write
- Issues: Read and write
- Metadata: Read (auto-selected)
For classic tokens, check the repo scope. That's all you need.
3. Paste in Marnix
Open Integrations → Sync your code to GitHub, paste the token, click Connect. Marnix calls /user to pull your handle and shows “Connected as @yourhandle” on the tile so you can confirm it's the right account.
Example prompts
- “Push this to a new private repo called recipe-hub.”
- “Create a branch called fix-signup-bug, apply the last change, and open a PR.”
- “List my 5 most recently opened issues across all my repos.”
- “For issue #12 in recipe-hub, suggest a fix and create a PR.”
- “Push to the staging branch of recipe-hub — don't touch main.”
New repos default to private
When you ask Marnix to “push this to a new repo” without specifying visibility, it creates a private repo. You have to explicitly say “public” to override. This prevents accidental code leaks.
What Marnix WON'T do
- Commit
.envor secrets. Generated apps include a.env.examplestub instead. - Delete repos or branches without you explicitly asking. Destructive ops always require confirmation.
- Force-push to
main. It pushes to new branches and opens PRs instead. - Touch repos your token doesn't explicitly grant. Fine-grained scope is enforced by GitHub.
Troubleshooting
- “Token scope insufficient” — re-create the token with the scopes listed above. Marnix needs write on Contents + PRs + Issues at minimum.
- “Repo not found” — if you're using a fine-grained token, double-check the target repo is in the allowed list.
- Connection expired — fine-grained tokens default to 1-year expiry. Regenerate when they expire; Marnix warns you in-app when it sees a 401.