Documentation

Getting started with MoonShift

MoonShift watches your GitHub repositories, works open issues with an AI agent, and opens pull requests for you to review. Here's the whole loop in four steps.

1

Write clear GitHub issues

MoonShift works directly from your GitHub issues. Each issue is the agent's entire brief โ€” it reads the title and description and implements exactly what's written, nothing more. The quality of the pull request depends almost entirely on the quality of the issue.

Treat every issue like a short spec. State what you want, where it lives, and how you'll know it's done:

  • Goal โ€” what should change and why.
  • Scope โ€” the files, components, or areas involved (if you know them).
  • Acceptance criteria โ€” what "done" looks like.
  • Constraints โ€” styles, libraries, or patterns to follow or avoid.
โœ— Too vague
"Fix the upload screen."
โœ“ Clear
"On the Upload screen (src/components/Upload), show a file-size error when the selected image exceeds 5 MB, matching the existing toast style. Block upload until a valid file is chosen."
๐Ÿ’ก
Tip: add a label (e.g. moonshift) to issues you want worked, then set MoonShift to only pick up that label โ€” so it touches exactly what you intend.
2

Choose your model: Claude or local

In Model engine settings, pick the brain that does the coding:

  • Claude (cloud) โ€” the most reliable for complex, multi-file work. Best results, but it bills per token.
  • Local model (LM Studio) โ€” runs on your own machine for free. Great for smaller, well-scoped issues.
โš ๏ธ
Claude can get expensive. Cost scales with how much the agent reads and writes โ€” a single substantial issue can run roughly $2โ€“$10 depending on repo size and exploration. Keep an eye on the per-issue cost in the dashboard.
๐Ÿ’ก
Recommended for most users: run a local model with LM Studio โ€” it's free and private. We suggest qwen/qwen2.5-coder-14b, a strong, tool-use-capable coding model. In LM Studio, load it, set a generous context length (16k+), and start the local server; then point MoonShift's engine at it.

You can switch engines anytime โ€” many people use a local model for routine cleanups and save Claude for the gnarly, multi-file features.

3

Set a schedule

Open Scheduler settings and tell MoonShift how often to work:

  • Interval โ€” how often it checks for open issues (default every 30 minutes).
  • Active window โ€” optionally restrict runs to certain hours.
  • Issues per cycle โ€” how many issues to tackle each run.
  • Build command โ€” optional; MoonShift can run your build (e.g. npm run build) and only open a PR if it passes.

Flip on Run automatically and MoonShift handles the rest in the background โ€” picking up new open issues on its own. You can also hit Run now anytime to kick off a cycle immediately.

4

Review the pull requests

Every fix lands on its own branch as a pull request on GitHub, attributed to your account, with a summary of what changed. Review it like any PR โ€” read the diff, let your CI run, then request changes or merge.

  • Good PR? Merge it like normal.
  • Not quite right? Close it, or use Rerun in the dashboard to have MoonShift try the issue again.
  • Track everything in the dashboard: tokens, cost, and runtime per issue, with a direct link to each PR.
โœ“
Nothing is ever merged automatically and MoonShift never commits to your default branch โ€” you stay in control of what ships.

Ready to put your backlog on autopilot?

Free for your first 3 issues โ€” no account required.

Download for macOS