Appearance
wish-cli
wish-cli is the command-line interface to a local wish-core — for creating identities, granting apps, inspecting connections, and driving the kernel directly during development and debugging. It connects over wish-core's local Unix socket (no Dashboard required), so it's the fastest way to poke at the stack.
The installed command is wish.
Install
One line — detects your platform, verifies the checksum, installs to ~/.local/bin (no sudo, no Rust toolchain):
sh
curl -fsSL https://developer.wishtech.fi/install.sh | shRe-running upgrades in place. The same script installs the kernel too:
sh
curl -fsSL https://developer.wishtech.fi/install.sh | sh -s -- wish-coreOther ways
From a wish-stack checkout: cargo install --path apps/wish-cli-rs. Or grab a prebuilt binary directly (macOS + Linux incl. Raspberry Pi armv6, + Windows) from developer.wishtech.fi/downloads/wish-cli/ via the channel's latest.json.
Connecting
wish talks to a running wish-core over its Unix socket. Start Wish (the desktop app hosts the kernel), or run a wish-core yourself, then:
sh
wish id # lists identities — confirms the connectionBy default it uses ~/.wish/core.sock. Override with --socket <path> or the WISH_SOCKET environment variable:
sh
WISH_SOCKET=/tmp/my-core.sock wish id
wish --socket /tmp/my-core.sock connIdentities & contacts — wish id
sh
wish id # list local identities + contacts
wish id get Alice # full details (name or uid hex-prefix)
wish id create "Alice" # create a new identity (admin only)
wish id remove Alice # remove an identity + close its connections (admin)
wish id export Alice # print a base64 contact bundle to stdout
wish id import <base64> # import a contact bundle (output of `id export`)
wish id requests # pending incoming contact requests
wish id accept Bob # accept a pending request (name or uid prefix)
wish id join <target> # join an identity hosted on a nearby device
wish id accept-join [name] # accept device-join requests (runs until Ctrl-C)Sharing a contact between two nodes is id export on one → id import on the other.
Apps & permissions — wish apps
Apps are sandboxed: they only see identities explicitly granted to them, and no contacts by default.
sh
wish apps # registered apps + their grants
wish apps peers <app> # peers wish-core sees for an app's protocols
wish apps grant Reason Alice # grant an identity to an app (admin only)
wish apps contacts Reason Alice # show contact visibility
wish apps contacts Reason Alice all # all | none | allow <names…> | deny <names…>
wish apps contacts Reason Alice allow Bob CarolContact-visibility changes take effect on new connections.
Network & connections
sh
wish conn # active connections (subcommands: check / connect / disconnect / inspect)
wish relay # configured relay servers (subcommands: add / remove)
wish dht # DHT routing-table summary (subcommands: bootstrap / announce)
wish nearby # peers discovered on the local network
wish request <who> # send a contact request to a nearby peer
wish ice # ICE connection-pool slot status
wish host # this node's host id + name (subcommand sets the name)
wish peer # peer pinning (connection-preference policy)Inspect
sh
wish api # list wish-core API endpoints
wish api --json # raw methods map as JSON
wish watch # stream unsolicited events (peer online/offline, frames, signals) until Ctrl-CRun wish <command> --help for the full options on any command.