Alejandro d18cdc31d5 feat: client tag (#183)
* feat: show client tag in event header

Display "via <client>" after the timestamp in BaseEventContainer
when the event has a client tag. Uses compact 10px font with
reduced opacity to minimize visual noise.

* feat: make client tag link to NIP-89 app definition

When the client tag has a third element with a valid 31990 address
(NIP-89 app handler), make the client name clickable to open the
app definition event.

* fix: use parseAddressPointer from nip89-helpers instead of non-existent parseCoordinate

* feat: add NIP-89 app address to client tag

- Add GRIMOIRE_APP_ADDRESS and GRIMOIRE_CLIENT_TAG constants
- Update all client tag usages to include the 31990 app definition address
- Update tests to verify the app address is included
- Update spell.ts documentation

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-01-21 12:23:41 +01:00
2025-12-18 15:46:02 +01:00
2026-01-21 12:23:41 +01:00
2025-12-19 12:49:29 +01:00
2025-12-13 15:06:05 +01:00
2025-12-22 20:40:16 +00:00
2025-12-20 14:25:40 +01:00
2026-01-14 19:24:37 +01:00
2025-12-14 16:50:16 +01:00

Grimoire

A Nostr protocol explorer and developer tool with a tiling window manager interface.

Features

  • Tiling Windows - Each window is a Nostr "app" (profile viewer, event feed, NIP docs, etc.)
  • Command Palette - Unix-style commands via Cmd+K to open apps and navigate
  • Multi-workspace - Virtual desktops with independent layouts
  • Real-time - Reactive event subscriptions with automatic updates

Stack

React 19, TypeScript, Vite, TailwindCSS, Jotai, Dexie, Applesauce

Getting Started

npm install
npm run dev

Scripts

Command Description
npm run dev Start dev server
npm run build Build for production
npm test Run tests in watch mode
npm run lint Lint code
npm run format Format code

License

MIT

Description
No description provided
Readme MIT 14 MiB
Languages
TypeScript 98.9%
CSS 0.8%
JavaScript 0.3%