mirror of
https://github.com/hoornet/vega.git
synced 2026-04-24 06:40:01 -07:00
README: add v0.1.7 features (per-account NWC, image paste, new account tab, conditional zap, etc.), update "Up next" to Phase 2, add GitHub Sponsors to Support table. ROADMAP: mark Phase 1 complete, move all shipped items to changelog (v0.1.3–v0.1.7), Phase 2 is now the active target. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
107 lines
4.7 KiB
Markdown
107 lines
4.7 KiB
Markdown
# Wrystr
|
|
|
|
A cross-platform desktop Nostr client built with Tauri 2.0 + React + TypeScript. Polished UI, deep Lightning integration, and first-class support for long-form writing.
|
|
|
|
> Named as a nod to Nostr with a wry twist.
|
|
|
|
## Download
|
|
|
|
Grab the latest release from the [Releases page](https://github.com/hoornet/wrystr/releases).
|
|
|
|
| Platform | File | Command |
|
|
|---|---|---|
|
|
| Ubuntu / Debian / Mint | `.deb` | `sudo dpkg -i wrystr_*.deb` |
|
|
| Fedora | `.rpm` | `sudo rpm -i wrystr-*.rpm` |
|
|
| openSUSE | `.rpm` | `sudo zypper install wrystr-*.rpm` |
|
|
| Arch / Manjaro | build from source | see [`PKGBUILD`](./PKGBUILD) |
|
|
| Windows | `.exe` installer | run the installer |
|
|
| macOS (Apple Silicon) | `aarch64.dmg` | open and drag to Applications |
|
|
| macOS (Intel) | `x86_64.dmg` | open and drag to Applications |
|
|
|
|
## Features
|
|
|
|
**Identity & accounts**
|
|
- In-app key generation with plain-language nsec backup — no browser extension required
|
|
- **Create new account** from the account switcher — no need to restart or go through onboarding again
|
|
- Login with nsec (full access) or npub (read-only)
|
|
- **Multi-account switcher** — save multiple identities, switch instantly from the sidebar
|
|
- **OS keychain integration** — nsec stored in macOS Keychain / Windows Credential Manager / Linux Secret Service; sessions survive restarts
|
|
|
|
**Feed & content**
|
|
- Global and following feeds with live relay connection
|
|
- Compose notes, inline replies, full thread view
|
|
- **Image paste in compose** — paste an image from clipboard → auto-uploads and inserts the URL
|
|
- Reactions (NIP-25) with live network counts
|
|
- Follow / unfollow (NIP-02) with contact list publishing
|
|
- **Quote & Repost** (NIP-18) — one-click repost or quote with compose modal
|
|
- **Mute users** (NIP-51) — muted list synced to relays, filtered from feed
|
|
- Long-form article editor + reader (NIP-23) — write with title, tags, cover image, auto-save; click any `nostr:naddr1…` link to open in the in-app reader
|
|
- **Quoted note inline preview** — `nostr:note1…` / `nostr:nevent1…` renders as an inline card
|
|
- Note rendering: images, video, mentions, hashtags, njump.me link interception
|
|
- **Direct Messages** (NIP-04) — conversation list, thread view, per-message decryption
|
|
|
|
**Lightning & zaps**
|
|
- **Per-account NWC wallet** — each account remembers its own Lightning wallet; switching accounts loads the correct one automatically
|
|
- **NWC guided wizard** — wallet picker (Alby Hub, Alby Extension, Mutiny, Phoenix) with per-wallet setup steps and inline URI validation
|
|
- Send zaps via NWC (NIP-47 + NIP-57) with amount presets, custom amounts, comment
|
|
- Zap counts on notes (⚡ N sats inline)
|
|
- **Zap history** — Received and Sent tabs with amounts, counterparts, comments
|
|
- **Support / About page** — zap the developer, Lightning + Bitcoin QR codes, Ko-fi and GitHub links
|
|
|
|
**Performance & UX**
|
|
- **Auto-updater** — "Update & restart" banner when a new version is available
|
|
- **SQLite note cache** — feed loads instantly from local cache on startup; profiles cached for immediate avatar display
|
|
- **System tray** — close button hides to tray; "Quit" in tray menu to fully exit
|
|
- Collapsible sidebar (icon-only mode)
|
|
- Search: NIP-50 full-text, `#hashtag`, people search with inline follow
|
|
- Relay management: add/remove relays with live connection status
|
|
|
|
## Stack
|
|
|
|
| Layer | Technology |
|
|
|---|---|
|
|
| Desktop shell | Tauri 2.0 (Rust) |
|
|
| Frontend | React 19 + TypeScript + Vite |
|
|
| Nostr protocol | NDK 3.x (Nostr Dev Kit) |
|
|
| Styling | Tailwind CSS 4 |
|
|
| State | Zustand |
|
|
| Local storage | SQLite (rusqlite, bundled) |
|
|
| Keychain | keyring crate (OS-native) |
|
|
|
|
## Development
|
|
|
|
```bash
|
|
# Prerequisites: Node.js 20+, Rust stable, @tauri-apps/cli
|
|
npm install
|
|
npm run tauri dev # full app with hot reload
|
|
npm run dev # browser only (no Tauri window)
|
|
npm run tauri build # production binary
|
|
```
|
|
|
|
## Roadmap
|
|
|
|
See [ROADMAP.md](./ROADMAP.md) for the full prioritised next steps.
|
|
|
|
Up next (Phase 2):
|
|
- Notifications — mentions, replies, DM badge, OS native alerts
|
|
- NIP-65 outbox model — fetch notes from the right relay set per author
|
|
- Feed reply context — show "↩ replying to @name" for replies in the feed
|
|
- Keyboard shortcuts — N, R, /, J/K, Escape, ? help overlay
|
|
|
|
## Support
|
|
|
|
Wrystr is free and open-source. If it's useful to you:
|
|
|
|
| Method | Details |
|
|
|---|---|
|
|
| ⚡ Zap (in-app) | Open the **support** view in Wrystr's sidebar and zap directly |
|
|
| ⚡ Lightning | `harpos@getalby.com` |
|
|
| ₿ Bitcoin | `bc1qcgaupf80j28ca537xjlcs9dm9s03khezjs7crp` |
|
|
| ☕ Ko-fi | [ko-fi.com/jure](https://ko-fi.com/jure) |
|
|
| ♥ GitHub Sponsors | [github.com/sponsors/hoornet](https://github.com/sponsors/hoornet) |
|
|
| ★ GitHub star | Helps with visibility and grant applications |
|
|
|
|
## License
|
|
|
|
MIT — [hoornet](https://github.com/hoornet)
|