English | 日本語
kukuri is a topic-first P2P social app. Find a topic you care about, join a public conversation, or move into a smaller private channel while keeping your identity rooted on your own device.
Important
kukuri is currently a Builder Preview for testers, not a stable general release.
Download the latest Windows Preview
| Platform | Current support |
|---|---|
| Windows 10 / 11 | NSIS installer from the latest GitHub Release |
| Linux | Run from source; no packaged installer yet |
| macOS | No package is currently provided |
Preview installers may be unsigned. Windows SmartScreen can therefore show a warning; check the release notes before running the installer.
For detailed setup and recovery help, see the user quickstart and troubleshooting guide.
- Find and follow topics, then publish posts and replies in threaded conversations.
- Keep public posts and private channels under the same topic instead of splitting the community into separate spaces.
- Follow people, react, repost, quote, bookmark posts, and mute authors locally.
- Exchange direct messages with mutual connections and share images or videos.
- Receive local and operating-system notifications for replies, mentions, follows, reposts, and messages.
- Keep your identity and local state across restarts, temporary offline periods, and Preview updates.
- Install and launch the Windows Preview, or run it from source on Linux.
- Wait a few seconds for the preloaded Community Node to become
ready, then open a starter topic. - Publish a public post and reply to an existing post.
- Create or join a private channel under the same topic.
- Open
Settings -> Release, export the diagnostic report, and send feedback through GitHub.
The default diagnostic report omits secret keys, authentication tokens, private-channel secrets, invite/share tokens, direct-message bodies, and local database paths.
- The packaged Preview currently targets Windows 10 and 11 only. Linux remains source-run, and macOS has no package.
- A direct message needs another test peer and a mutual relationship. P2P behavior is easiest to evaluate with two devices or two isolated app instances.
- Live, Metaverse, and game-room surfaces are still evolving. Some extended features remain staged behind developer mode, and the Stream surface does not yet include a media player.
- Preview updates are expected to preserve identity, local database state, Iroh data, Community Node settings, private-channel capabilities, and the notification inbox. Keep the app data directory before uninstalling or resetting if you need to retain local state.
- This is testing software. Please attach a sanitized diagnostic report when reporting connectivity, upgrade, or recovery problems.
See the Builder Preview plan for the current milestone and the release runbook for packaging and data-safety gates.
- Your identity stays with you. The signing key is stored locally. A Community Node is not your account owner or home server.
- P2P is the foundation. Connectivity prefers direct P2P, then relay-supported P2P, and uses relay fallback only when the earlier paths cannot carry the data.
- Community Nodes provide scoped assistance. A node may help with bootstrap, authentication, topic rendezvous, connectivity, indexing, moderation, or reporting. It is not the permanent canonical store for user posts, profiles, or the social graph, and it has no network-wide authority.
- Different data has different paths. Structured shared state is synchronized through
docs, media and large payloads throughblobs, andhintsonly notify peers that something may need to be synchronized. - Nostr compatibility is intentionally limited. kukuri keeps useful identity, signed-envelope, and selected tag semantics; it is not a full Nostr client and does not use a relay-first internal sync model.
- Moderation remains scoped. A moderation event or safety advisory is optional trust input from its issuing node, not a command applied to the entire network. Each client decides how to use it.
The durable responsibility boundary is documented in P2P-first Community Node responsibilities.
| Area | Current Builder Preview capability |
|---|---|
| Topics and posts | Topic discovery, public posts, replies and threads, reactions, reposts, quotes, bookmarks, and local mute |
| Private conversation | Invite-only, friends-only, and friends-plus channels with epoch-aware membership; pairwise mutual-only direct messages |
| People and activity | Public profiles, follow/unfollow, mutual and friend-of-friend context, local and OS notifications |
| Media | Image and video attachments in posts and direct messages |
| Connectivity and recovery | Static-peer links, seeded DHT discovery, Community Node assistance, offline-capable local state, restart recovery, and late-join backfill |
| Preview operations | In-app update checks, sanitized diagnostics, feedback links, provenance display, and distributed report routing |
The foundation progress record, accepted ADRs, tests, and harness scenarios define the detailed shipped baseline.
- Optional search, discovery, recommendation, gateway, and bridge services can grow around the P2P core without becoming mandatory canonical stores.
- Community Node trust, moderation, policy-assist, and operator tooling can evolve within each node's declared capability and authority scope.
- Live, Metaverse, game, and richer media experiences can mature without changing the topic-first ownership and synchronization boundaries.
These are directions, not a promise that every capability is available in the current Preview.
- Report reproducible bugs and regressions in GitHub Issues.
- Use GitHub Discussions for questions, product ideas, UX proposals, and early discussion of larger changes.
- Include the sanitized report from
Settings -> Releasefor connectivity, updater, and recovery problems. - Community Node operators are welcome to report deployment, disclosure, moderation, and distributed-reporting feedback through the same GitHub entry points.
Contributions are welcome in code and beyond it: bug reports, UI/UX proposals, documentation, translations, tests, implementation work, and Community Node operational feedback all help.
For a substantial feature, protocol change, responsibility-boundary change, or large refactor, start a Discussion before implementation. Keep bug reports focused in Issues, and use the repository's tests and documentation as the source of truth for behavior.
Prerequisites:
- Git
- Rust
1.92.0(pinned byrust-toolchain.toml) - Node.js
^20.19.0or>=22.12.0 - pnpm
10.16.1through the commands below - The platform dependencies from the development runbook; Windows development also needs the Tauri prerequisites
- Docker only for Community Node integration tests and local Community Node stacks
git clone https://github.com/KingYoSun/kukuri.git
cd kukuri
npx pnpm@10.16.1 install --dir apps/desktop
cargo xtask doctor
cd apps/desktop
npx pnpm@10.16.1 tauri:devRun the normal validation paths from the repository root:
cargo xtask check
cargo xtask test
cargo xtask e2e-smokeFor browser-only frontend work, use npx pnpm@10.16.1 --dir apps/desktop dev. The development runbook lists targeted checks, UI validation, Community Node workflows, and platform-specific setup.
