| Crates.io | riverctl |
| lib.rs | riverctl |
| version | 0.1.29 |
| created_at | 2025-07-16 20:17:41.393733+00 |
| updated_at | 2026-01-25 22:34:55.827822+00 |
| description | Command-line interface for River decentralized chat on Freenet |
| homepage | https://github.com/freenet/river |
| repository | https://github.com/freenet/river |
| max_upload_size | |
| id | 1756551 |
| size | 785,164 |
Command-line interface for River decentralized chat on Freenet. This tool allows you to interact with River chat rooms without using the web interface, making it ideal for automation, testing, and server deployments.
cargo install riverctl
See QUICK_START.md for basic usage examples and getting started guide.
The integration test at tests/message_flow.rs uses the freenet-test-network
crate to launch a local Freenet gateway plus two peers, then drives the River CLI
to create a room, exchange invitations, and send messages between two users.
Run it manually (it is ignored by default) from river/main/cli:
cargo test --test message_flow -- --ignored --nocapture
Prerequisites:
~/code/freenet/freenet-core/main must exist (the test builds the Freenet
binary from there)freenet-test-network dev-dependency will be fetched from crates.io automatically (no sibling checkout required)Expect the test to fail today with the current contract serialization bug; it exists to reproduce and debug the issue.
Heads up: When you change the room contract or shared River types, rebuild the WASM and refresh the bundled copy with
cargo make sync-cli-wasm. The CLI build now double-checks and will panic if the bundled file drifts from the most recently built artifact.
ws://127.0.0.1:7509)The CLI uses core components from the River ecosystem:
river-core - Core protocol and data structuresfreenet-stdlib - WebSocket client for Freenet communicationriverctl room - Room management (create, list, info)riverctl invite - Invitation handling (create, accept)riverctl debug - Debugging tools for contract operationsriverctl message - Messaging (coming soon)riverctl member - Member management (coming soon)Run riverctl --help for full command documentation.