Find out why the release build breaks.

Servante is a free, open source desktop app for Android and Kotlin developers. Ten tools in one window: signing fingerprints, Compose stability, Gradle versions, SDK disk usage, bundle preflight, Play releases, reminders, an accessibility score, a security assessment and an AI review that runs on your own key.

In developmentThere is no download yet. The first release will be the Signing tool, for macOS, Windows and Linux.

Fjord Notes~/dev/fjord-notes

Signing

Why does sign-in work in debug and fail in release?

Google Sign-In will fail for Play installs. The Play app signing certificate is not registered in the Firebase project.

IdentitySHA-256FirebaseOAuth clientPlay
Debug keystore3A:91:0C:E4 … 7B:22MatchMatchNot used
Upload keyC8:5F:A1:09 … D4:6EMatchMatchMatch
Play app signing keyF2:77:3D:B0 … 19:ACMissingMissingMatch
  • Add the Play signing SHA-1 and SHA-256 to Firebasegoogle-services.json, client app.fjord.notes
  • Keystore password committed to the repositoryapp/build.gradle.kts:42
  • Upload certificate valid until 2049release.jks, alias upload, RSA 4096

This is an interactive preview with fictional data, not a recording of the app. Click the tools in the sidebar. The real app is being built in the open.

Ten tools, each built around one question

Android Studio is good at writing code. These are the questions it leaves you to answer with a terminal, three browser tabs and a forum thread.

Signing

Why does sign-in work in debug and fail in release?

Reads your keystores and signing configs, computes every SHA-1 and SHA-256, and compares them with what Firebase and Play expect. It names the fingerprint that is missing and where to add it.

Compose

Why does this composable recompose?

Runs the Compose compiler reports for you and makes them readable: which parameters are unstable, why, and the fix as a diff. The answer comes from the compiler, not from a guess.

Gradle

Which of these versions do not go together?

Checks Gradle, AGP, Kotlin, KSP, Compose and the JDK against each other, lists the updates in your version catalog, and reviews the build properties that cost you time.

SDK and disk

What is taking all this space?

System images, emulators, NDKs, Gradle caches, old wrapper distributions. See what the open project needs, what nothing uses, and move the rest to the trash.

Preflight

Will Play accept this build?

Drop an AAB or APK. Target API, 16 KB page size alignment, permissions and which library added them, exported components, size by category. Compare two builds side by side.

Releases

Where is build 412?

Your Play tracks in one view: internal, closed, open and production, with version codes and staged rollout progress. It uses your own service account.

Reminders

What deadline is coming?

Local notifications before the Play target API deadline, before a certificate runs out and when a service account key gets old. Plus a log of everything Servante changed for you.

Accessibility

Can someone using TalkBack or large text use this screen?

A score out of 100 from rules over your Compose and XML code: missing labels, small touch targets, contrast computed from your real theme, text that breaks at large sizes. Each finding names its WCAG criterion.

Security

What would a pentester flag in the first hour?

Hard-coded secrets, plain-text token storage, exported components, weak crypto, risky WebView settings and vulnerable dependencies. Findings map to OWASP MASVS, and the grade says clearly that it is not a certification.

AI review

What would a senior reviewer say about this project?

An optional deeper review of architecture, build setup, accessibility, security or release readiness, run with your own API key or a local model. Findings point at real files and lines.

AI when you ask for it, on your key

Every tool works without AI. The review is an extra pass you start yourself.

  • You see the payload firstPick the modules and files. The preview is exactly what gets sent, with an estimate of the size before anything leaves.
  • Secrets are left outKeystores, local.properties, google-services.json and anything that looks like a key are excluded automatically.
  • Answers are checked against your sourceA finding that points at a file or line that does not exist is dropped. Fixes are shown as diffs and never applied on their own.
  • Or keep it on your machinePoint Servante at a local model and nothing leaves at all.
AnthropicYour API key
OpenAIYour API key
GoogleYour API key
OpenAI-compatible endpointYour URL and key
OllamaLocal, no key

Built for a tool that sits next to your signing keys

It reads by default

Anything that changes a file, deletes something or installs something asks first, with a summary of what will change. Every change is written to a local log.

Nothing is made up

When Servante cannot read something, it says "Unavailable" and why. You never get a placeholder where real data should be.

No account, no server, no telemetry

Requests go to Google with your credentials and to the AI provider you picked, when you ask. The app lists every destination it can contact.

Open source, free, for good

Apache 2.0. No paid tier and no license key. You can read the code that touches your keystore, and build it yourself.

Where the project stands

Tools ship one at a time, in this order. The full task list is in the roadmap.

  1. Signing keystores, fingerprints, Firebase and Play comparison
    Next up
  2. Compose compiler reports, rules, graph, score
    Planned
  3. Gradle compatibility, catalog updates, properties
    Planned
  4. SDK and disk inventory and cleanup
    Planned
  5. Preflight AAB and APK checks
    Planned
  6. Releases and reminders Play tracks, deadlines
    Planned
  7. Accessibility and security score, grade, WCAG and MASVS mapping
    Planned
  8. AI review bring your own key, local models
    Planned
  9. Command line the same checks in CI
    Planned

Questions

Can I download it today?

No. Servante is in development and nothing has been released yet. The demo on this page is a preview with fictional data. Watch the repository on GitHub to hear about the first release.

What will it cost?

Nothing. Servante is open source under Apache 2.0, with no paid tier. AI review uses your own provider account, so you pay that provider for what you use, or nothing with a local model.

Which systems will it run on?

macOS, Windows and Linux. It is written in Kotlin with Compose Multiplatform for Desktop.

What will leave my computer?

Requests to Google APIs with your own credentials for the Play features, version lookups against Maven repositories, package names and versions to OSV.dev when you ask for a vulnerability check, an optional update check on GitHub, and the files you choose when you start an AI review. There is no Servante server.

Will it change my project or my keystores?

Only when you ask. It reads by default. Any change is confirmed first with a summary, then recorded in a local log. Keystore passwords are used once and never stored.

Do I need an AI key?

No. The nine other tools run locally with their own rules. A key is only needed for the AI review, and a local model through Ollama needs none.

How is this related to Sindri?

Sindri is a Mac app by Walid Sassi that does this job for iOS and macOS developers, and it inspired Servante. The two projects are separate. A servante is the French word for the rolling tool cabinet in a mechanic's workshop.

Can I help?

Yes. The roadmap lists every task, and Compose and Gradle rules are a good place to start. Open an issue on GitHub before a large change.

Follow the build

Star or watch the repository to get the first release when it lands.