n34

Crates.ion34
lib.rsn34
version0.4.0
created_at2025-05-21 22:42:00.184407+00
updated_at2025-08-08 15:22:07.693717+00
descriptionA CLI to interact with NIP-34 and other stuff related to code in Nostr
homepagehttps://n34.dev
repositoryhttps://git.4rs.nl/awiteb/n34.git
max_upload_size
id1684494
size401,044
Awiteb (TheAwiteb)

documentation

https://n34.dev/commands.html

README

n34

A CLI to interact with NIP-34 and other stuff related to code in Nostr

About

n34 is a command-line interface (CLI) tool for sending and receiving Git issues, patches, and comments over the Nostr protocol. It supports creating, replying to, and managing issues and patches, making Git collaboration decentralized and censorship-resistant.

The primary goal of n34 is to implement NIP-34 (git stuff), but its flexible design allows for additional use cases beyond Git workflows. For more details, see the following section.

Documentation

Check the documentation at n34.dev

Features

  • Repository announcements

  • Repository state announcements

  • Patches (Send, fetch and list)

  • Issues (Send, view and list)

  • Replies

  • Issues and patches status

  • Pull requests (nostr-protocol/nips#1966)

  • Gossip Model (NIP-65)

  • Proof of Work (NIP-13)

  • nostr: URI scheme, in the issue/reply content (NIP-21)

  • Signing using bunker (NIP-46)

  • Signing using NIP-07 proxy (nostr-browser-signer-proxy)

  • Code Snippets (NIP-C0)

  • In device relays and repos bookmark (sets command)

Why Nostr?

Nostr is fundamentally different from traditional platforms because it’s not an application or service, it’s a decentralized protocol. This means any tool or app can integrate with it, enabling open, permissionless collaboration without relying on centralized gatekeepers. Unlike proprietary systems, Nostr doesn’t require emails, passwords, or accounts. You interact directly through relays, whether you self-host your own or use public ones, ensuring no single point of failure or control.

What makes Nostr uniquely resilient is its design, the protocol itself is just a set of rules, not a company or product that can disappear. Your Git issues, patches, and comments persist as long as relays choose to store them, immune to the whims of corporate shutdowns or policy changes. Nostr is infrastructure in its purest form, an idea that outlives any temporary implementation. n34 taps into a future-proof foundation for decentralized collaboration.

More about Nostr

Installation

You can install n34 either by cloning the repository and building it with Cargo, or by using cargo install or Nix.

Building from source

  • Clone the repository:
git clone git://git.4rs.nl/awiteb/n34.git
cd n34
  • Build the release version:
cargo build --release

The binary will be available at target/release/n34.

Using cargo install

cargo install n34

The binary will be installed to your Cargo binary directory (typically ~/.cargo/bin/n34).

Make sure ~/.cargo/bin is in your PATH environment variable to run the binary from anywhere.

Using nix build (+v0.4)

  • Clone the repository.
  • Run the nix build command.

The binary will be available at result/bin/n34.

Adding it to your home-manager (+v0.4)

  • Add it as an input to your flake.nix:
inputs = {
  # Specify the version you want to install, or remove `?ref` for the unreleased
  # version. You can also use any mirror; it doesn't have to be `git.4rs.nl`.
  n34.url = "git+https://git.4rs.nl/awiteb/n34.git?ref=refs/tags/vx.y.x";
};
  • Add it to your packages (ensure your home-manager extraSpecialArgs includes the inputs):
packages = [ inputs.n34.packages."${pkgs.system}".default ];

Contributing

Contributions to n34 are welcome! You can help by opening issues (such as bug reports or feature requests) or submitting patches. All contributions must be submitted through Nostr. For more details on the process, please refer to the CONTRIBUTING.md file. Your support is greatly appreciated!

Contributions & Changes

You can find the changelog at CHANGELOG.md and the list of contributors at AUTHORS file.

License

n34 is licensed under the GPL-3.0 License. This means that you are free to use, modify, and distribute the software under the terms of this license. Please refer to the LICENSE file for more details.

Commit count: 0

cargo fmt