July 2, 2026

GitBoba - An unofficial Gitea client for iOS

A native SwiftUI client for self-hosted Gitea - for the quick check-ins I kept doing from my phone.

GitBoba is a free, unofficial client for Gitea on iPhone and iPad. Browse repos, pull requests, issues, Actions, and notifications from a native SwiftUI app.

GitBoba is a client, not a service. It connects your device directly to your Gitea server.

Why I built GitBoba

I’ve been a fan of Gitea for a while, using it for personal projects and wiring it into my own workflows. As agent-assisted development has become more common, I’ve been building tools to move faster and stay confident in what my agents and I ship.

A lot of that work happens on a laptop. But I kept reaching for my phone to check if a workflow passed, skim an open PR, or see whether an agent left a review.

That led me to GitBoba: a native iOS client built around features that drive my workflow.

What it does

  • Home - a personalized feed of your repos, open PRs, and active issues
  • Notifications - your Gitea inbox, delivered natively
  • Explore - browse organizations and their repositories
  • Repos - repository details, branches, commits, file tree, PRs, and issues
  • Actions - list of workflows and their logs

GitBoba repo metrics

How it works

GitBoba connects to your Gitea server with an API token. Add your server URL and token once, they’re stored in the iOS Keychain. The app then talks directly to your instance for everything else.

You’ll need:

  • A self-hosted Gitea instance (1.26.0 or later)
  • An API token (Settings → Applications → Generate Token)
  • iOS 26 or later

That’s it. No account with me, no relay server, no sync layer in the middle. Note that since the app doesn’t use a intermediate server, push notifications are not supported. Apple push servers require a primary server to handle the requests scheduling notifications. As the app does not have a primary server, push notifications are not supported.

Building against Gitea’s API

Shipping GitBoba meant living inside Gitea’s OpenAPI spec. Those files are big, easily 1–2 MB of JSON, and handing the whole thing to an agent to answer “what’s the shape of GET /user/repos?” gets eats up context and slows down the app.

So I built openstash alongside it. A small CLI that caches specs locally and lets you search for one endpoint at a time. GitBoba and openstash came out of the same workflow; one for using Gitea on my phone, one for building against its API without drowning agents in context.

Try it out

GitBoba is free on the App Store for iPhone and iPad. If you run into a bug or missing feature, open an issue on GitHub and include your iOS version, Gitea version, and steps to reproduce.

← All posts