protocol/rvn1

RAVEN

The terminal is the interface.

Raven is an open-source communication protocol and terminal-native client for Linux, Windows, and macOS. Create an identity on your host, verify a peer, and exchange signed, encrypted RVN1 envelopes without a central messaging server. Built for human communication and an expanding machine and agent ecosystem.

terminal-nativelinux | windows | macospeer-to-peeropen-sourceserver=none
Raven CLI · source workflow
# 1/3 · build locally
$ git clone https://github.com/Ahmadreza-Arezehgar/RAVEN.git
$ cd RAVEN/node
$ cargo build --locked --release -p ash --bin raven
The Rust package is named ash; the executable is raven.
# 2/3 · create your identity
$ cargo run --release -p ash --bin raven -- init
Requires a supported protected key store. Fresh GNU/Linux identity creation is currently held; see installation notes.
# 3/3 · inspect your node
$ cargo run --release -p ash --bin raven -- status
Inspect the actual transport state and queue on your machine.

the raven system

One protocol. Multiple communication models.

RVN1 defines the communication envelope. The CLI serves humans and hosts; optional relay nodes carry sealed traffic; RDAP provides signed agent delegation. Integrating RDAP into the protected Raven identity and encrypted carrier remains in progress.

01 / humans

Raven Terminal

Create a local identity with raven init, pin a contact’s fingerprint, and send through the authenticated node path. The command line is Raven’s primary interface.

ravenlocal identitydirect peer

02 / relay

Raven Relay

When enabled, a supported Raven node can forward sealed envelopes for other peers. Relay policy, carrier availability, and route discovery determine what can be delivered.

opt-insealed envelopes

03 / agents

RDAP companion

Exchange signed tasks and answers between explicitly trusted agents. RDAP is an experimental companion with its own identity store; integration with the encrypted Raven node is still in progress.

A2Asigned tasksexperimental

interface/terminal

Private communication, from your shell.

Raven keeps identity and message handling on the host machine. The CLI supports a guided terminal menu and explicit commands for contacts, messages, inbox, and node status.

Raven Terminal · command guide
# 1/3 · identity
$ raven init
$ raven whoami
Exchange the public address, key and fingerprint through a trusted channel.
# 2/3 · verify a contact
$ raven contact add --help
$ raven contact list
Add the peer’s public identity and LAN endpoint; compare the fingerprint before pinning it.
# 3/3 · communicate
$ raven send --contact @alice --chat
$ raven inbox
$ raven status
Requires a verified Alice contact, a reachable peer listener, and an authenticated session. This is a command guide, not a live delivery trace.

Local identity

Generate your key on the machine you control. No registration service, email address is required.

Authenticated delivery

Messages use an authenticated session and are sealed locally before transmission. The normal node path refuses an unavailable authenticated setup instead of falling back to plaintext.

A node on your network

Connect reachable peers over a local network. Configure and check the receiving listener; routing features depend on the selected build and carrier.

Source you can inspect

The Rust workspace, protocol documents, and test vectors are public under AGPL-3.0. Test results describe the paths they exercise.

communication/agents

Signed work between trusted agents.

RDAP uses A2A JSON-RPC and Ed25519 signatures to bind tasks and answers to a sender and recipient. Trust policy and replay checks run before a delegation is accepted.

RDAP · command guide
# 1/3 · inspect the companion
$ ./rdap --help
Run from the RDAP repository on Linux or macOS; use rdap.cmd on Windows.
# 2/3 · set up a local identity
$ ./rdap init
RDAP stores its own agent identity. Follow the repository’s peer trust and listener setup.
# 3/3 · choose a trusted peer
$ ./rdap ask --help
Both peers must establish trust. Use the documented command options for your configured agent.

Explicit trust

Pin a peer’s address and public key. Signed requests and expiring delegations identify who sent a task and who may receive it.

Team state under your control

Board, journal, facts, and outputs live in the team workspace. Git coordination is optional and needs a configured shared repository.

Confidentiality depends on the carrier

Direct HTTP is signed, but is not encrypted. Use HTTPS or a protected network layer for confidential traffic. The experimental plaintext mailbox is disabled by default.

One system is the direction

RDAP currently keeps separate keys and does not use the production Raven node’s ATSAM session actor. A shared identity store and encrypted Raven carrier remain integration work.

protocol/atsam

Five layers, each with a precise job.

ATSAM documents pairing, discovery, presence, routing, and optional content protection. Protocol design and implementation availability are distinct; the terminal build’s supported security profile determines what runs.

Hybrid pairing

The ATSAM design combines X25519 with ML-KEM-768. Full post-quantum pairing is not established across the current Rust terminal path; check the implementation’s supported profile.

Private peer discovery

Paired Raven nodes can recognise authenticated discovery material without broadcasting a stable public identity. Local discovery depends on the carrier implementation.

Live peer confirmation

Fresh challenge–response binds a presence check to the current exchange and helps reject replayed discovery material.

Encrypted forwarding

Routing tags and sealed envelopes let a relay forward protected payloads. Network observations, endpoint compromise, and traffic analysis remain separate concerns.

Optional Vault Mode

The protocol describes one-time-pad protection under strict conditions: secret random pads, sufficient length, secure distribution, and no reuse. This is not a blanket claim about the terminal build.

transport router

Your host. Multiple paths.

A Raven host can use multiple transports. RVN1 keeps the envelope independent of the carrier; delivery requires a supported, reachable path.

Internet P2P · libp2p

The architecture includes peer discovery and encrypted peer-to-peer streams over libp2p. Full DHT, relay coordination, and hole punching across real NATs remain experimental in the terminal path.

Local network · direct peer

The current CLI dials a verified contact’s secure LAN endpoint. Reachable hosts communicate directly without a Raven-operated central messaging service.

Optional local transport · Bluetooth

Bluetooth can carry RVN1 envelopes where a compatible adapter is available. Real headless GATT support is not complete in raven-node; the CI BLE adapter is a mock. Servers can run Raven without Bluetooth.

Bridge forwarding: authenticated bridge-pull clients and store-and-forward components exist. Automatic multi-hop route discovery is not wired into the current CLI send path.

project/status

What you can run. What is still being built.

The terminal is the product interface. Feature status follows the implementation and its evidence, with no implied mobile or graphical client roadmap.

Available in source

[x] terminal + protocol

Raven CLI for Linux, Windows, and macOS

Build the Rust workspace and run the raven executable. The existing ash name remains available as an alias.

Local identity and verified contacts

Create identity through a supported protected backend, pin peer fingerprints, and inspect local state. Fresh GNU/Linux identity creation remains gated.

Authenticated direct LAN path

Use the supported secure peer endpoint. Authenticated session setup is required for normal message origination.

Open RVN1 and ATSAM specifications

Read the wire format, security profiles, reference code, and test vectors under AGPL-3.0.

In development

[ ] integration + validation

Internet traversal and optional local carriers

Production libp2p coordination across NATs, real headless Bluetooth, and automatic multi-hop CLI routing require further integration and hardware evidence.

Full post-quantum terminal interoperability

Hybrid pairing and ratchet work must meet the terminal implementation’s conformance and release gates.

Agents on the encrypted Raven node

Unify RDAP’s identity store and payload delivery with the production Raven node before claiming one runtime.

Text, files, and structured payloads

RVN1 provides the envelope architecture for text, files, JSON, agent tasks, and machine events. Payload-specific commands and encrypted agent integration depend on implementation status.

Independent security review

The project has not been independently audited. Public source and automated checks are review material; no audit completion or vendor engagement is claimed here.

linux / windows / macos

Terminal native. By design.

Raven is built for the terminal. It runs on Linux, Windows, and macOS as an open-source CLI and protocol implementation. No mobile client, app-store distribution, or graphical application layer is part of Raven’s product direction.

Linux

Build the CLI for your shell or a plain TTY. Bluetooth is optional. Fresh protected identity creation is currently gated on GNU/Linux; review the installation status before deploying a new node.

Windows

Clone the repository, build the Rust workspace, and run Raven directly from PowerShell or Windows Terminal.

macOS

Run the same Raven CLI from Terminal.app, iTerm2, or any compatible shell. The protocol and identity model remain the same across macOS, Linux, and Windows.

open_source

Read the protocol. Inspect the implementation.

The security-critical core, Raven node, CLI, protocol specifications, and shared test vectors are open source under AGPL-3.0. Review the code and the documented limitations of the build you intend to run.

install

Open source. Clone it. Run it.

Build locally and run Raven directly from your terminal on Linux, Windows, or macOS. The CLI is the primary interface by design.

source build · requires Git, Rust, and platform build tools
git clone https://github.com/Ahmadreza-Arezehgar/RAVEN.git
cd RAVEN/node
cargo build --locked --release -p ash --bin raven
cargo run --release -p ash --bin raven -- --help

The Cargo package retains the name ash. --bin raven selects the existing Raven executable. For platform prerequisites, protected identity gates, and service setup, read the installation FAQ.