Skip to content

Commit 498d64f

Browse files
vveerrggclaude
andcommitted
feat: add CLAUDE.md with extension dev and ecosystem context
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
1 parent 7b8483d commit 498d64f

1 file changed

Lines changed: 61 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# CLAUDE.md — nostrkey.browser.plugin.src
2+
3+
## What This Is
4+
NostrKey browser extension — cross-browser Nostr key management, encrypted vault, and identity layer. The core codebase that also powers the iOS and Android apps.
5+
6+
## Ecosystem Position
7+
NostrKey is **the hand that holds the baseball card**. It manages your private keys, signs events, encrypts data, and connects you to your NostrKeep relay and npub.bio identity. Free, open source (MIT), forked from ursuscamp/nostore.
8+
9+
## Current Version
10+
v1.5.5 — Live on Chrome Web Store, Android (Google Play), iOS (App Store submission in progress)
11+
12+
## Tech Stack
13+
- Vanilla JS (Alpine.js was removed)
14+
- esbuild bundler
15+
- Tailwind CSS
16+
- nostr-crypto-utils for protocol operations
17+
- Chrome Manifest V3
18+
19+
## Build Commands
20+
```bash
21+
npm install
22+
npm run build # Safari: Tailwind + esbuild
23+
npm run build:chrome # Chrome → distros/chrome/
24+
npm run build:all # Both targets
25+
npm run build:all:prod # Both, minified
26+
npm run watch # Watch mode (JS, Safari)
27+
npm run watch-tailwind # Watch mode (CSS)
28+
```
29+
30+
## Chrome Dev
31+
1. `npm run build:chrome`
32+
2. `chrome://extensions/` → Developer mode → Load unpacked → `distros/chrome/`
33+
34+
## NIPs Implemented
35+
NIP-01, NIP-04 (deprecated), NIP-07, NIP-19, NIP-44, NIP-46, NIP-49, NIP-78
36+
37+
## Key Features
38+
- NIP-07 `window.nostr` signing
39+
- NIP-46 nsecBunker (remote signing)
40+
- NIP-44 encryption (ChaCha20-Poly1305)
41+
- Encrypted .md vault + API key vault (NIP-78)
42+
- Multi-profile with per-site permissions
43+
- Master password with auto-lock
44+
- Cross-device sync via storage.sync
45+
- WCAG AA accessibility
46+
47+
## Architecture
48+
Extension uses background service worker + sidepanel UI. Mobile apps (iOS/Android) wrap this in dual-WebView architecture with native bridges (IOSBridge.swift / AndroidBridge.kt).
49+
50+
## Conventions
51+
- Vanilla JS, no frameworks
52+
- kebab-case file names
53+
- Chrome Web Store zips go in `distros/` folder
54+
- WCAG AA contrast, aria-labels, reduced-motion support
55+
56+
## Related Repos
57+
- `nostrkey.app.ios.src` — iOS app (WKWebView wrapper, v1.1.1)
58+
- `nostrkey.app.android.src` — Android app (WebView wrapper, v1.1.1)
59+
- `nostrkey.bizdocs.src` — business strategy docs
60+
- `npub-bio-landingpage` — npub.bio (uses NostrKey for NIP-07 connect)
61+
- `nostrkeep.srvr.relay.src` — NostrKeep relay (NostrKey points keys here)

0 commit comments

Comments
 (0)