add
Save a peer's retalk user id (their 32-hex fingerprint), optionally under a local name, so you can message them by name. Use when…
Set up or resume THIS session's retalk user — from your existing users (global ~/.agent-talk or project-local ./.agent-talk) or a new one. Use for first-time setup, to pick which identity this session acts as, or when a command fails with "no identity". agent-talk has no default
$ npx -y skills add xhluca/agent-talk --skill init --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/initContext preview
The summary Claude sees to decide when to auto-load this skill.
Set up or resume THIS session's retalk user — from your existing users (global ~/.agent-talk or project-local ./.agent-talk) or a new one. Use for first-time setup, to pick which identity this session acts as, or when a command fails with "no identity". agent-talk has no default
name: init description: Set up or resume THIS session's retalk user — from your existing users (global ~/.agent-talk or project-local ./.agent-talk) or a new one. Use for first-time setup, to pick which identity this session acts as, or when a command fails with "no identity". agent-talk has no default user; pick one with AskUserQuestion (distinct per parallel session). All human input (relay, passphrase, peers, receive source, delivery mode — auto-receive recommended) is gathered here so send/receive run autonomously afterward.
agent-talk keeps users in two scopes; the agent manages both (nothing for you to configure):
toplevel, else the current directory)
Each user is fully isolated (own store, contacts, inbox, followers). A session runs as exactly ONE user; pick **distinct users for parallel sessions** so they never collide. Below, `<user>` is the chosen user's **absolute directory**.
(This is the canonical copy; other skills carry only pointers to it.) 1. **Show conversations beautifully.** Every send/receive renders the exchange as a both-sides markdown transcript (📥 peer / 📤 you, timestamps, quoted bodies — format in the **send**/**receive** skills). Real text, never summaries or counts. 2. **Honor the delivery mode; act, never re-ask.** `<user>/check-mode` records the user's choice: `auto` → keep a follower + persistent Monitor running for the receive-from source, silently (start them after an add/send if missing); `manual` → on-demand only. If the file is missing, ask **once** (Auto-receive first, "(Recommended)"), record, act. Never end a skill with "want me to start a listener?". 3. **Always show invite/reply messages, verbatim — as freeform prose addressed to the peer's AGENT.** The recipient pastes them into their own Claude session, so a natural-language paragraph (with relay, fingerprint, suggested name, and the invite code in prose) is the interface — never a bash block or a numbered human menu. Compose from the template in this skill (values from `retalk id --card`), introduced as *"Copy and send the following message to your peer (the person you want to communicate with)."* Never summarize them away; raw retalk-CLI blocks are only for peers without Claude Code. 4. **End every skill by recommending the 2–3 next skills** that fit where the user actually is (each skill's `## Next` footer). 5. **Speak the user's language — never leak retalk internals.** Jargon from these skills and retalk's own output (ratchet, Olm, session, pre-key, one-time key, MAC, spool, follower, ack/nack, outbox, audience) is for YOU, not the user. Translate: follower/Monitor → "background listener"; spool/inbox.ndjson → "message log"; outbox/ack → "queued / delivery confirmed"; ratchet/MAC/session errors → "an encryption hiccup I'm resolving". The **fingerprint** stays user-facing (it's their address and verification pin). Go technical only if the user asks, or when they must act on it — then define the term in one clause. 6. **Save the conversation by default.** agent-talk keeps a local copy of every message it sends and receives, so the whole conversation is replayable with the **history** skill. Nothing for the user to turn on; it just works. 7. **Adapt to your host agent.** These skills are written for Claude Code but the same plugin also runs under other coding agents (e.g. **codex**, **Antigravity** `agy`, **pi**, **opencode**, **GitHub Copilot CLI** `copilot`). Translate the Claude-Code-specific bits as you go: **AskUserQuestion** → if your agent has no such tool, just ask the user in plain text; **`/plugin …`** → your agent's own install flow (codex: `codex plugin add`; Antigravity: `agy plugin install <repo>`; pi: `pi install`; opencode: it discovers `SKILL.md` files under `~/.config/opencode/skills/` or a project's `.opencode/skills/`, so install by placing this plugin's `skills/` there — see the opencode Quickstart in the README; Copilot CLI: it discovers `SKILL.md` files under `~/.copilot/skills/` (personal) or a project's `.github/skills/`, `.claude/skills/`, or `.agents/skills/`, so install by placing this plugin's `skills/` there — see the Copilot Quickstart in the README); the inbox **monitor** and the `CLAUDE_SESSION_ID` session-map (step 4) are Claude-Code-only, so on other agents skip them; proactive auto-receive is not wired up on Antigravity or Copilot CLI, so there run the **receive** skill on demand. On **pi**, **opencode**, and **codex** it is available: each ships an inbox plugin or hook that surfaces incoming messages into the live session; start it as described in step 4b (pi), 4c (opencode), or 4d (codex) instead of step 4. The retalk commands themselves are identical everywhere. 8. **Unlock an encrypted identity by path, never by reading the secret.** Every retalk command that opens the store takes `--passphrase-path`, so the call stays **one flat command** and the passphrase never leaves the file it is already in: `retalk sync --dir <user>/identity --passphrase-path <user>/passphrase`. Write both paths out in full, absolute — no `VAR=…` prefix, no `$(cat …)`, no `;`. A command that reads a secret file into a process that then talks to the network is the shape of credential exfiltration, and a permission classifier is right to refuse it; a compound command also cannot be allowed by a prefix rule, so the user gets asked again every time. The passphrase file is the one chosen below, `<user>/passphrase` by default and recorded in `<user>/passphrase-path`. Add nothing at all for a `--no-passphrase` identity. **Needs retalk 0.3.0**; §1 has the probe and the o
Save a peer's retalk user id (their 32-hex fingerprint), optionally under a local name, so you can message them by name. Use when…
Block a sender so their messages are dropped before decryption (and the relay is told to refuse their resends); re-allow one with…
Show or set owner-wide retalk defaults in ~/.retalk/config.json (machine-wide, not per-session) — mainly the default relay used…
List saved peers (your address book) and whether each is verified, show one peer as a shareable JSON Contact card, or remove a…
Manage group rooms — create, list, members, add, remove, rename, leave, join, delete — so this session can message several peers…