A Flutter-based cross-platform GitLab workflow client that pairs GitHub Mobile-grade UX with GitLab's Merge Requests, CI/CD, and self-hosted support.
Pre-release. Sign-in, projects, issues, merge requests, diffs, pipelines, job logs, the to-do inbox and search are built and tested. Not yet published to any store — see RELEASING.md.
The same code branches on width rather than platform, so a tablet gets a navigation rail and the room to show twenty merge requests at once:
Screenshots show gitlab-org/gitlab, a public project.
LabFox does not try to port every feature of GitLab's web UI. The goal is to make the work developers do every day fast.
Check notifications
↓
Open the Issue / Merge Request
↓
Read the diff and review
↓
Check pipeline status
↓
Check job logs
↓
Approve / Merge / Retry
Where the GitLab web UI splits its menus by feature, LabFox reorganizes them around the task at hand.
Home
├── My Issues
├── Merge Requests
├── Review Requests
├── Pipelines
├── Projects
└── To-do
| GitHub Mobile-grade UX | Information density and flow designed for development work on the go |
| GitLab CI/CD | Pipelines, job logs, retries, and manual jobs — all from your phone |
| Self-hosted / Multi Account | GitLab.com and your company's instance are equal citizens |
| Four platforms | Android · iOS · Windows · macOS |
Flutter · Dart · Riverpod · Dio · go_router · flutter_secure_storage · intl
A local cache (Drift/SQLite) is planned for after 1.0; today the repositories are network-only.
UI → Controller (Riverpod) → Repository → GitLab API Client → GitLab
Monorepo layout:
labfox/
├── apps/labfox/ Flutter application
└── packages/
├── gitlab_api/ GitLab REST / GraphQL client (pure Dart)
├── gitlab_models/ DTO / Entity
├── design_system/ LabFox Design System
└── secure_storage/ Platform secure storage wrapper
| M0 Foundation | Scaffolding, routing, theming, responsive layout, API client skeleton | ✅ |
| M1 Repository | PAT login, Projects, Repository Browser, File Viewer | ✅ |
| M2 Collaboration | Issues, Merge Requests, Diff, Discussion, Approve, Merge | ✅ |
| M3 CI/CD | Pipeline, Jobs, Job Log, Retry, Cancel, Manual Job | ✅ |
| M4 Product | OAuth, Self-hosted, Multi Account, Inbox, Search, Deep Links | ✅ |
| 1.0 Release | Store listings, subscription, push notifications, offline cache | in progress |
Details: .agents/docs/roadmap.md
Contributions are welcome. Read CONTRIBUTING.md before you start.
One Flutter codebase powers all four platforms, so a bug you fix on desktop is fixed on mobile too.
Desktop contribution → shared codebase → every platform improves
This repository is developed together with coding agents.
The working rules live in AGENTS.md, and they apply to human contributors just the same.
Work flows Issue → Branch → Pull Request. Nothing is committed directly to main.
gh issue create --title "..."
git switch -c feat/12-mr-diff-viewer dev
git commit -s -m "feat(scope): ..."
gh pr create --fill --base dev
- Branches:
<type>/<issue-number>-<slug>(featfixdocsrefactortestchore) - Commits: Conventional Commits with a DCO sign-off (
git commit -s) - Link the issue from the PR description with
Closes #N - Details:
.agents/docs/workflow.md
- CONTRIBUTING.md — contribution process, DCO, license rules
AGENTS.md— architecture, conventions, what's off-limits, 1.0 scope.agents/docs/— detailed docs (architecture · conventions · api-reference · references · roadmap).agents/docs/workflow.md— the Issue → Branch → PR process.agents/skills/— playbooks for each type of task
The source code is released under the Apache License 2.0. → LICENSE
Source code Apache-2.0 open source — anyone may use, modify, redistribute
Windows Direct download, free, full features
macOS Mac App Store, free, full features
Android / iOS Free download, subscription for the paid features
The app is a free download everywhere. A single subscription, sold through store in-app purchase, unlocks the paid features on mobile — there is no LabFox account and no LabFox server, so entitlement comes from the store you installed from.
Desktop keeps every feature for free, and that is a deliberate constraint rather than generosity: LabFox shares one Flutter codebase, so a fix contributed on desktop lands in the mobile apps too. Charging the people who send those fixes would tax the loop the whole model runs on.
What is free and what is not: .agents/docs/monetization.md
Third-party dependency licenses: THIRD_PARTY_NOTICES.md
The "LabFox" name and logo are not covered by the Apache-2.0 license. Section 6 of the Apache License 2.0 explicitly withholds trademark rights.
You are free to use, modify, and redistribute the code. However, shipping a modified version under the "LabFox" name or logo requires prior permission. Forks must use a different name and icon.
Full details: TRADEMARK.md
LabFox is an unofficial third-party client and is not affiliated with, endorsed by, or certified by GitLab Inc. or GitHub, Inc. "GitLab" is a trademark of GitLab Inc.; "GitHub" is a trademark of GitHub, Inc.




