Jared Logan's avatar
Jared Logan
jaredlogan@happytavern.co
npub19yw8...322j
catholic. american. husband and father. here for the revolution. avid note taker. eternal optimist. photographer, videographer, and ux designer. self-taught fisherman and banjo player.
Jared Logan's avatar
jaredlogan 2 weeks ago
'the sun doesn't disappear because it's cloudy. it's you who can't see it.' ⚔️
Jared Logan's avatar
jaredlogan 2 weeks ago
We can all become something more. ⚔️
Jared Logan's avatar
jaredlogan 3 weeks ago
A lot of people heard 'Don't trust, verify', and trusted without verifying. 💔
Jared Logan's avatar
jaredlogan 3 weeks ago
Building out a nostr-native AI expanding on Dork from @npub10qdp...arpj https://10vy5d0umw8izp3bcmh0btzl6k2szvsu8zestncxpsstb6l8e6opendork.nsite.lol/ --- FEATURES Identity & auth - NIP-07 browser extension - nsec (with paste guard outside the login field) - NIP-46 bunker URI - nostrconnect (QR / remote signer) - NIP-98 signed requests to Shakespeare AI AI - Streaming chat with stop generation - Model picker with search, grouped by provider - Shakespeare AI built-in (credits via Nostr; balance chip when selected) - Custom providers — OpenAI-compatible /v1 APIs + optional CORS proxy - Provider presets — OpenAI, OpenRouter, Groq, Together, Ollama, OpenCode Go - Retry / regenerate last assistant turn - Attachments — paste or drop images (vision) and text/code files - Nostr context — composer packs: my profile, my recent notes, people, paste note/nevent/naddr/thread - @mentions — Ditto-style typeahead from follows + NIP-05; auto-fetches profile + recent notes - Edit message — rewrite a user turn and regenerate from that point - Fork chat — branch a conversation from any message - Continue / rewrite presets on assistant turns - Code blocks — syntax highlight + per-block copy - Context meter — estimated tokens vs model window under the composer - Nostr fetch — auto-resolve note / nevent / npub / nprofile / naddr refs into the prompt - Chat search — ⌘/Ctrl+K full-text search across titles and messages Workspace - Recents — freestanding chats outside any project (Claude-style default) - OpenDork session — app-owned system block (product rules + optional logged-in identity; never nsec) - Global instructions — Settings → Instructions; injected into every chat - Projects — optional hub with project instructions, memory, context pack, and chats - Project hub — Claude-style project page: composer + chat list + right rail (Instructions · Memory · Context) - Memory — short durable facts injected into every chat in the project (private, sealed with vault) - Chats — freestanding or under a project; auto-title from first message; move between buckets - Prompt assembly — session → global → project instructions → memory → budgeted context → thread → Nostr packs/mentions → messages (freestanding chats use session + global; empty global falls back to a built-in default persona) History modes - Local only (default) — IndexedDB on this browser - Ephemeral — no new writes to disk - Sync (encrypted) — opt-in publish/pull of a NIP-44 sealed snapshot Privacy & portability - Vault encryption — AES-GCM at rest for project names, chat titles, messages, global/project instructions, memory, and context - Unlock via NIP-44 encrypt-to-self (preferred) or passphrase - encryptLocal policy honored on every seal write - Sealed API keys — not stored in plain app-config JSON when vault is active; UI warns if vault is off - Export / import — plain JSON (with confirm) or passphrase-encrypted bundles (API keys never included) - Relay sync — addressable kind 39987 (d = opendork-workspace-v1, client/app = opendork), NIP-44 content; requires unlocked vault --- Repo: View article →
Jared Logan's avatar
jaredlogan 3 weeks ago
You know it's focused work when you hear this playing.
Jared Logan's avatar
jaredlogan 1 month ago
Is it just me or does Buzz seem like a huge security and privacy concern?