A lightweight terminal client for browsing open topical Nostr communities (kind 1111 posts with NIP-73 identifiers) and their NIP-22 comment threads. Built with Bubble Tea and powered by go-nostr. TUIstr is a fork of https://github.com/tonymajestro/reddit-tui.
Open topical communities working spec: https://github.com/damus-io/dips/pull/2/files
- Featured feed across multiple relays and community identifiers.
- Jump directly to a specific community (
t:,u:, org:NIP-73 ids). - View comment threads (NIP-22) with nested replies.
- Publish new posts to topic communities and reply to threads (requires a Nostr private key).
- Keyboard-driven navigation (vim-style) and modal search for communities.
- Configurable relays, timeouts, and featured communities via a TOML config.
git clone https://github.com/tonymajestro/TUIstr.git tuistr
cd tuistr
./install.shTo remove the binary:
./uninstall.sh# Open the featured communities feed
tuistr
# Jump to a specific community (NIP-73 id)
tuistr --community t:linux
# Open a specific event by ID (kind 1111)
tuistr --event <event_id>- Navigation:
h,j,k,lor arrow keys - Jump:
g(top),G(bottom) - Community search modal:
s - New post:
n(from timelines) - Load more posts:
L - Home:
H - Comments:
enteron a post,oto open the event in a browser - Reply to thread:
r(while viewing comments) - Collapse/expand replies:
cwhile viewing a thread - Back:
backspace/esc - Quit:
q/esc
On first run, a config is created at ~/.config/tuistr/communities.toml:
[core]
logLevel = "Warn"
[nostr]
relays = ["wss://relay.damus.io", "wss://nos.lol", "wss://relay.snort.social"]
timeoutSeconds = 10
limit = 50
# Provide a hex or nsec private key to publish posts/replies
# secretKey = ""
[communities]
# NIP-73 identifiers: topics (t:), relays (u:), geohashes (g:)
featured = ["t:nostr", "t:bitcoin", "t:linux"]
default = "t:nostr"- Featured feed: Queries kind
1111events tagged with anyIvalue incommunities.featured. - Community page: Queries kind
1111events with a rootItag matching the selected identifier. - Threads: Fetches NIP-22 replies (kinds
1/1111) referencing the root event (e/Etags). - Publishing: Posts are kind
1111with anItag (topics only for now); replies are kind1withe/Etags back to the root.
- No Reddit APIs or email logins remain—everything is fetched from Nostr relays via go-nostr.
- Kind
1111post URLs are rendered ashttps://nostr.eu/<nevent>for easy sharing/opening.
NIP-29 is a great foundation to build a moderated discord alternative (see example implementation flotilla). Open topical communities aims to solve a different problem in public townsquare forums. See a direct comparison below:
| Property | NIP-29 Relay-Based Groups | Open Topical Communities (DIP) |
|---|---|---|
| Governance model | Admin-owned, relay-enforced | Completely ownerless; no admins |
| Moderation | Admins can kick, ban, delete posts | No server-side moderation; only client filtering |
| Structure | Group metadata + event kinds (40, 41, etc.) |
Purely tag-based: NIP-73 + NIP-22 |
| Posting rules | Relay controls membership & posting | Anyone can post by using the correct I tag |
| Relay dependence | High — requires a specific group relay | Optional — events can come from any relay |
| Censorship resistance | Medium — admin/relay can censor or remove group | High — no group to censor; content exists across relays |
| Threading | Group-specific event structure | Standard NIP-22 threading |
| Discoverability | Join group → get group feed | Browse topics/hashtags → feed auto-aggregates |
| Use-case fit | Moderated group chats, project teams | Open-topic discovery, public-square conversations |
| Dealing with spam | Admin tools can remove content & ban users at the relay level | No centralized control → requires client-side spam filtering, heuristics, muting, reputation systems |
| UX expectation | Structured, rule-based group | Freeform Reddit/Twitter-like topic feeds |
| Implementation complexity for clients | Medium–high (new event kinds, admin flows, membership UI) | Low (reuse existing NIP-73/NIP-22) |
| Complexity of implementing a Reddit-style Topic UI | Not applicable; groups are not topic feeds | Moderate — requires topic directory, trending topics, per-topic timelines, but no new protocol requirements |
| Community survivability | Depends on group relay’s longevity | Very high — any relay can host posts; topics are global |