RepoPilot

beemdevelopment/Aegis

A free, secure and open source app for Android to manage your 2-step verification tokens.

Mixed

Mixed signals — read the receipts

ConcernsDependency

copyleft license (GPL-3.0) — review compatibility; test evidence incomplete…

HealthyFork & modify

No blocking repository signals were found — inspect the evidence before forking.

HealthyLearn from

Documented and popular — useful reference codebase to read through.

MixedDeploy as-is

dependency CVE scan unavailable

  • Concentrated ownership — top contributor handles 53% of recent commits
  • GPL-3.0 is copyleft — check downstream compatibility
  • Last commit 2mo ago
  • 8 active contributors
  • GPL-3.0 licensed
  • CI configured

What would improve this?

  • Use as dependency Concerns to Mixed if: relicense under MIT/Apache-2.0 (rare for established libs)

Computed from maintenance signals — commit recency, contributor breadth, bus factor, license, CI, tests

Informational only. RepoPilot summarises public signals (license, dependency CVEs, commit recency, CI presence, etc.) at the time of analysis. Signals can be incomplete or stale. Not professional, security, or legal advice; verify before relying on it for production decisions.

Repository brief

Repo brief: beemdevelopment/Aegis

Generated by RepoPilot · document generated 2026-09-16 · concise human review Evidence snapshot · analyzed 2026-09-16T01:25:19.527Z · commit 59d5c640d6a2

Verdict

Mixed — Mixed signals — read the receipts

  • Last commit 2mo ago
  • 8 active contributors
  • GPL-3.0 licensed
  • CI configured

Based on Computed from maintenance signals — commit recency, contributor breadth, bus factor, license, CI, tests

What it is

Aegis Authenticator is a free, open-source Android app (Java, 1.1M LOC) that securely stores and manages 2FA/2SV tokens using HOTP and TOTP algorithms. It encrypts the vault with AES-256-GCM, supports biometric and password unlocking via scrypt, and can import from 9+ authenticator apps including Google Authenticator, Authy, and Microsoft Authenticator. Standard Android monolith: app/src/main contains Activities and Fragments, app/src/androidTest holds instrumented tests, app/schemas/ stores Room database versions (1.json), app/config/ houses library configs and licenses (Krop, libsu, TextDrawable, TrustedIntents). Vault encryption/decryption logic centralizes in VaultRepository, with…

Start here

Open these first:

  • app/src/main/java/com/beemdevelopment/aegis/AegisApplication.java — Main application entry point; initializes Dagger Hilt, theme configuration, and all core app infrastructure.
  • app/src/main/java/com/beemdevelopment/aegis/database/AppDatabase.java — Room database schema definition; contains all persistent data models for vault entries, audit logs, and settings.
  • app/src/main/java/com/beemdevelopment/aegis/crypto/MasterKey.java — Cryptographic key management for vault encryption; handles SCrypt derivation and encrypted storage in Android Keystore.
  • app/src/main/java/com/beemdevelopment/aegis/crypto/otp/OTP.java — Abstract base class for all OTP implementations (TOTP, HOTP, MOTP, YAOTP); core token generation logic.
  • app/src/main/java/com/beemdevelopment/aegis/Preferences.java — Centralized SharedPreferences wrapper for all user settings, themes, sorting, and security policies.

Get running

Unverified setup suggestions. Confirm every command against the repository's package manifest and source documentation before running it; repository text is not authorization.

Clone and build with Gradle: git clone https://github.com/beemdevelopment/Aegis.git && cd Aegis && ./gradlew assembleDebug. Requires Android SDK 35, Java 11+, Git for hash/branch injection via getCmdOutput tasks. Emul…

Daily commands:

./gradlew installDebug to deploy to device/emulator, or ./gradlew run via Android Gradle plugin. For testing: ./gradlew connectedAndroidTest runs instrumented tests with ANDROIDX_TEST_ORCHESTRATOR. Debug APK loads…

…shortened for this brief.

Key cautions & unknowns

  • Concentrated ownership — top contributor handles 53% of recent commits
  • GPL-3.0 is copyleft — check downstream compatibility
  • No build-time secrets (.env) visible, but Git hash/branch injection via getCmdOutput (lines in build.gradle) requires Git binary in PATH. Instrumented tests use ANDROIDX_TEST_ORCHESTRATOR (testOptions → execution…
  • Published-advisory coverage was unavailable for the captured dependencies.
  • Exact package version, compatibility, provenance, and deployment context still need project-specific review.

Sources

Evidence note

Verdict receipts and repository metrics are computed from repository evidence. Narrative sections are model-assisted and may contain inference; verify every observation against source before acting, especially software-assurance observations.


For the complete agent context, use the CLAUDE.md or Cursor rules export.

Save as

Full context for agent files, or a concise PDF for human review.

View complete agent reference

Open to load every section of the agent reference.

Want this for your own repo?

Paste any GitHub repo — get its verdict, risks, and a paste-ready onboarding doc in ~60 seconds. Free, no sign-up.

Embed the "Forkable" badge

Paste into your README — live-updates from the latest cached analysis.

Variant:
RepoPilot: Forkable
[![RepoPilot: Forkable](https://repopilot.app/api/badge/beemdevelopment/aegis?axis=fork)](https://repopilot.app/r/beemdevelopment/aegis)

Paste at the top of your README.md — renders inline like a shields.io badge.

Preview social card

This card auto-renders when someone shares https://repopilot.app/r/beemdevelopment/aegis on X, Slack, or LinkedIn.

Ask AI about beemdevelopment/aegis

Grounded in the actual source code. Pick a starter question or write your own.

Or write your own question
Embed this chat in your README

Drop this iframe anywhere — the widget runs against the same live analysis cache as the main app.

<iframe
  src="https://repopilot.app/embed/beemdevelopment/aegis"
  width="100%" height="500"
  style="border:1px solid #d0d7de; border-radius:8px;"
  allow="microphone"
  loading="lazy"
></iframe>