Skip to content

Latest commit

 

History

103 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Keycast

Your keys. Your rules. Your server.

A self-hosted remote signer for Nostr. Give your apps permission to use your keys without handing each app your private key.

Keycast keeps your Nostr keys on your server and handles signing requests over NIP-46 (Nostr Connect). You choose what each app can do, pair it with a one-time invitation, and revoke its access when you need to. It is built for personal accounts, families, and small teams running one instance on one host.

Keycast workspace with three hosted identities, profile avatars, policies, and team navigation

A team workspace with fictional demo identities. Take the screenshot tour.

Start here

I want to… Start with…
Connect an app to Keycast Getting started
Run my own instance Deployment
Understand permissions and access Policies and access
Understand how it works Architecture
Choose a version Releases and changelog
Work on the code Development and contribution
Look up past decisions and test results Project history

Browse the full documentation for operations, backups, relays, and upgrades.

How it works

  Your Nostr app  <---->  Nostr relays  <---->  Keycast signer
                                                   |
                                            encrypted keys
                                            + access policy

Import a key, create a policy, and connect an app. Keycast checks each request against that app's access before signing an event or performing an allowed encryption operation. The app receives the result; the private key stays with the signer.

  • Explicit permissions. Allow specific event kinds and encryption/decryption operations. Capabilities you do not grant are denied.
  • Access you can revoke. Separate grants for different apps or purposes, one-time pairing invitations, and persistent client sessions.
  • A shared workspace. Organize keys and policies into teams with their own administrators.
  • Visibility into your instance. Inspect signing readiness, relay diagnostics, activity, and resource usage.
  • Recovery tools. Encrypted online backups, a reviewed restore process, and root credential rotation through the trusted host CLI.

The web UI manages the instance using approvals from an external Nostr signer. Keep that signer available: Keycast deliberately refuses to sign its own management approvals. See sign-in and pairing for the distinction.

Run Keycast

The supported deployment is a Linux host with Docker Compose, a hostname, and an HTTPS reverse proxy. The stack has three services: a SvelteKit web UI, an Axum API, and a Rust signer. Only the signer opens the database and root credential.

The deployment guide walks through initialization, choosing image digests, HTTPS routing, and checking the running instance. Then follow Getting started to connect your first app. Already running Keycast? Read Upgrading, including the required fresh setup when moving from the original release.

Keycast has not received an independent security audit. The host and signer are trusted with your keys, and browser import also exposes the imported key to the web stack. Read the security model before choosing which keys to host.

Build and contribute

The workspace uses Rust and SvelteKit, with Bun for frontend tooling. The development guide covers local setup, the code layout, validation, and container testing. TODO.md tracks open work; AGENTS.md records repository rules and security boundaries.

Past architecture decisions, hardening reviews, VM rehearsals, and relay soak results live in the development history.

License

MIT

About

No description, website, or topics provided.

Resources

Security policy

Stars

28 stars

Watchers

3 watching

Forks

Releases

Packages

Used by

Contributors

Languages