Lantunnel
Install Lantunnel Client on each participating device to access your whole LAN from anywhere with P2P-first low-latency routing, encrypted transport, and relay fallback without port forwarding.
Vault is an open-source iPhone and iPad app for the secrets you can't afford to lose: 2FA codes, private notes and crypto recovery phrases. Fully offline, with encrypted backups and protection for whe
SecuritySwift · CGitHub @badbundleOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open-source iPhone and iPad app for 2FA codes, private notes and crypto recovery phrases. Fully offline, encrypted, and built for when you're forced to unlock it.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Vault is an open-source iPhone and iPad app for the secrets you can't afford to lose: two-factor codes, private notes and crypto recovery phrases. It's fully offline, with no servers, no accounts, no sync, no analytics and no network requests. And it's built for the moment someone forces you to unlock it.Read the full README ↗Vault is an open-source iPhone, iPad and Mac app for the secrets you can't afford to lose: seed phrases, private keys and private notes, and your two-factor codes too. It's fully offline, with no servers, no accounts, no sync, no analytics and no network requests. And it's built for the moment someone forces you to unlock it.
MANIFESTO.md sets out the threat model.Every promise, the code that keeps it, the test that pins it, and its limits are in docs/security-model.md.
MANIFESTO.md for the security principles that govern what Vault will and will not do.docs/security-model.md lists every security and privacy promise Vault makes, the code that keeps it and the test that pins it, and the limits Vault accepts.
MANIFESTO.md has the principles behind them, and docs/on-device-encryption.md the design of the encrypted vault.
To report a security problem, see SECURITY.md. Please don't open a public issue.
Development takes place in /Vault, so take a look in there.
As soon as we are able, we will be dropping the xcodeproj project wrapper and going all-in on the Swift Package Manager.
Vault.xcworkspace what you should open/Vault Swift Package that defines targets used by the app, build settings, tooling./VaultApp minimal wrapper that packages this into the iOS app (VaultApp) and the Mac app (VaultMacApp).There is no hosted CI. Changes are validated on the developer's Mac, and the result is posted to the commit on GitHub as the Validate (local) status check. main requires that check, so a PR can't be merged until its latest commit has passed.
bun install at the root of the repo, once per clone. It installs local-check, the tool that does the validating, and enables its pre-push hook.make validate from /Vault.The checks are in local-check.config.ts. local-check checks out the exact commit into a separate worktree, so uncommitted changes and your usual DerivedData can't affect the result. With Xcode 27.1, it then runs:
make lint;.ruby-version isn't installed;iOSAllTests test plan on a throwaway iPhone 18 Pro Max / iOS 27.0 simulator, created for the run and deleted afterwards;VaultAppUITests scheme, on the same simulator;VaultApp, for the simulator, then a check that it and its extensions have only their own entitlements: the keychain access group the app shares with its AutoFill extension is theirs alone, and not the widget extension's;macOS_SupportedTests test plan, the shared modules' tests, on the Mac itself, so that work on the Mac app can't break iOS, or the other way round (see docs/mac-app.md);VaultMacApp, with its tests running inside it, then a check that it's signed with only the entitlements the design lists, and its UI tests, the VaultMacAppUITests scheme.The Mac UI tests need the Mac's screen unlocked: on a locked Mac, every one of them fails to activate the app. To validate while it's locked, run VAULT_SKIP_MAC_UI_TESTS=1 make validate, which skips "Build Mac UI tests" and "Mac UI tests". The run's output and its stored result name them as skipped, but the check on GitHub may not: its description is cut off at 140 characters, before the skipped checks. Everything else still runs. Validate again without it once the Mac is unlocked.
If the commit is already on GitHub, the result is posted straight away. Otherwise it's stored, and the pre-push hook posts it when you push, so you can validate before or after pushing. Every new commit needs validating again. Logs are kept in .git/local-check/logs/.
The check is self-attested: it records that the commit passed on the machine that posted it, rather than on independent CI.
Issues are tracked in Trackslash, in the VAULT project owned by badbundle. Along with the commit history, it's the source of truth for the project's issues and progress: what's open, what's in progress and what's done. A bug, a follow-up or a planned change goes there, not in a TODO comment or a file in the repo. The repo has no GitHub Issues.
The project is public: anyone can read it, and anyone signed in to Trackslash can open an issue. Agents can read and update it through Trackslash's MCP server. Issues are referred to by their ref, such as VAULT-60.