Nimbus8 Coming to the App Store
Shipping · Cirrus · Code

From prompt to pull request. All on-device.

Cirrus is Nimbus8's on-device code module. Describe a task against a branch and get inline diff cards with GitHub-style gutters, hunk headers, and a one-tap "Open PR" — every edit produced locally, so your source never leaves the phone.

iOS 17+iPhone & iPad
100%on-device
Qwen-Coder · Deepseek-Coderopen models
9:41
Cirrus
anthropics/claude-cookbook
base: main
Find the rate-limit bug in requests.py
Read requests.py
128 lines scanned
Found it — the exponential backoff resets on every retry instead of compounding. Here's a patch:
api/requests.py
compound exponential backoff with jitter on retries
+4 −2
@@ -42,6 +42,8 @@ def fetch_with_retry(url):
42for attempt in range(max_retries):
43 try:
44 return http.get(url)
45− except RateLimit:
46− time.sleep(1)
45+ except RateLimit:
46+ delay = base * (2 ** attempt)
47+ time.sleep(delay + jitter())
48+ continue
Ask Cirrus…

Inline diff cards

GitHub-style gutter, hunk headers, and +/- counts rendered right in the thread. Every change is reviewable before it touches a branch.

Repo-aware

Pick any branch of any repo you've authorized. Cirrus scopes edits to the files you approve — nothing else is read, nothing else is written.

On-device edits

The model runs on your phone. Source never lands on a remote inference server — the only network hop is to GitHub, only when you open the PR.

What is Cirrus?

Cirrus is Nimbus8's on-device code module — an iPhone coding surface that reads a branch of your repo, proposes edits, renders them as inline diff cards, and opens a pull request in one tap. The model runs on your device; the PR is the only thing that touches the network.

It's built for the work you actually do on a phone: triaging a bug report on the train, patching a config on a walk, reviewing a quick fix between meetings. Not a full IDE — a careful, review-first surface that produces PRs a human wrote the intent for.

How do diff cards work in Cirrus?

Every edit Cirrus proposes is rendered as an inline diff card in the chat thread — file path, +/- counts, hunk header, and per-line gutter, matching GitHub's review UI. You read the change before it's applied, and nothing is written until you tap Open PR or Copy patch.

Diffs are computed locally from the model's proposed file contents against the branch you selected. Hunks expand and collapse; long files stay readable because Cirrus only shows the changed regions plus a few context lines. There is no "silent apply" — a Cirrus diff card is a review, not a commit.

Repos, branches, and scope

Cirrus connects to GitHub through a scoped personal-access token or the GitHub App, stored in the iOS keychain. You pick which repos are visible and which branch to work against. The repo bar at the top of every thread makes the current base explicit.

  • Per-repo allow-list — only repos you've authorized show up in the picker.
  • Per-file approval — Cirrus reads the files it needs, nothing more; each read is logged in the step card.
  • Branch isolation — PRs are opened against a new branch; your base branch is never written to directly.

Which models does Cirrus support?

Any code-tuned open model installable through Nimbus8's Hugging Face browser. The picker filters the catalog down to models your device can actually run — quantization, context window, and memory footprint are measured against your chip and RAM before the model appears.

Flagship picks verified on current-gen iPhones:

  • Qwen2.5-Coder-7B — MLX — strongest code reasoning where RAM allows.
  • DeepSeek-Coder-6.7B — MLX — fast, accurate multi-language patches.
  • CodeLlama-7B — GGUF via llama.cpp — widest device coverage.
  • Codestral-Mamba — GGUF — long-context workhorse for larger files.
  • Phi-3.5-mini — GGUF — lightweight fallback for older devices.

What leaves my device when I use Cirrus?

Your source code does not. Cirrus runs the model locally, reads repo contents into the iOS sandbox, and computes diffs on-device. The network is only used for two things: downloading the model the first time, and talking to GitHub's API when you explicitly open a PR or sync a branch.

There is no inference proxy. There is no telemetry. The app does not phone home. See the privacy policy for the full data flow.

Getting started with Cirrus

  1. Install Nimbus8 from the App Store (coming soon).
  2. Open the Models browser and pick a code model the app flags as "fits your device."
  3. Connect a GitHub account and pick which repos Cirrus can see.
  4. Open Cirrus, tap the repo bar to choose a base branch, and describe a task.
  5. Review the diff card, then tap Open PR — Cirrus pushes a new branch and opens the PR on GitHub.

FAQ

Does Cirrus need an internet connection?

Only to download models and to open pull requests. The actual editing — reading files, generating patches, computing diffs — happens offline. You can draft changes in airplane mode and open the PR later.

Can Cirrus push directly to my main branch?

No. Every change is opened as a pull request against a new branch. Cirrus never writes to a protected or base branch directly — the PR is the only apply path.

Does Cirrus see the whole repo?

Only the files it needs to answer your prompt, and only if those files are under the repo and branch you authorized. Each file read is surfaced as a step card in the thread, so you can see exactly what was scanned.

Can I use GitHub Enterprise or self-hosted Git?

GitHub.com is supported at launch. GitHub Enterprise Server and GitLab/Gitea support are on the roadmap — the diff and edit engine is host-agnostic; only the PR adapter is per-host.

What happens to the model after I uninstall Nimbus8?

It's deleted. Models live in the iOS app sandbox, along with any cached repo reads and draft diffs. Uninstalling Nimbus8 removes every model, every draft, and every setting.