Skip to content

LabFox

LabFox

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.

License Platforms

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.


What it looks like

Home: issues, merge requests, pipelines and favourites Merge request with approvals and the merge button Diff viewer with line numbers and changed lines CI job log with colour output

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:

Merge request list on a tablet, with a navigation rail

Screenshots show gitlab-org/gitlab, a public project.


What we're building

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

What sets it apart

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

Tech stack

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

Roadmap

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

Contributing

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> (feat fix docs refactor test chore)
  • 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

Docs

License

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

Trademark

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

Notice

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.

About

A cross-platform GitLab workflow client built with Flutter — merge requests, code review, CI/CD and self-hosted support on Android, iOS, Windows and macOS.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages