Customize Clankie

Make him yours: a name he answers to, a character you enjoy, a voice that sounds right, and habits that fit your life. Start with what you want him to be like; the models and connections can come after.

New installation? Follow Get started. This guide covers customization on your own Mac. Use the console or supported CLI commands to change settings; Clankie can help you run them. Keep API keys in the setup wizards, never in a chat message.

Persona

“Keep your replies short, be curious, and use a little dry humor.” Open /persona to save his name, aliases, and character notes. The same character follows him across conversations, with room to speak differently at work or among friends.

The CLI equivalent is:

clankie persona set --display-name Clankie --aliases Clank,Clanks \
  --character-notes "Curious, a little dry, and happy to disagree." \
  --chattiness quiet --reply-policy addressed

Chattiness can be quiet, balanced, or chatty. Reply policy controls which messages he sees in admitted Discord text channels: addressed starts with his name or a mention and lets him follow a few messages after replying; all lets him read every admitted message. Neither makes him answer every message. He can always stay quiet.

clankie persona status shows what you saved. Follow the returned restart instruction to apply character changes.

Look and vibe

Give him a visual persona

Point him at a folder in the console: “Use the images in ~/Pictures/clankie-vibe as your persona.” Or run clankie persona images set ~/Pictures/clankie-vibe.

Files in the folder shape his vibe—the feel of who he is, not what he looks like. Put references for his physical appearance in an appearance/ subfolder; those are the ones he uses for self-portraits. Videos work too: with ffmpeg and ffprobe installed, each becomes one contact sheet of ten chronological frames.

Run clankie persona images status to see what loaded and find the contact-sheet paths. Restart Clankie to apply the selection or changes to the files. His written character still takes precedence.

Voice

Open /voice → Voice stack to choose how he sounds. Realtime voice handles listening and conversation; speech output is the voice you hear. Choose OpenAI Realtime or Grok Voice for their native voices, or ElevenLabs for an external voice speaking the text OpenAI produces. ElevenLabs currently pairs with OpenAI, not Grok Voice.

For ElevenLabs, paste a voice ID from your ElevenLabs voice library and choose its model in /voice. You need both an OpenAI API key and an ElevenLabs API key. Native OpenAI or Grok voice needs that provider's API key. The wizard stores keys in the credential broker; a chat-model subscription alone does not supply them.

Once ElevenLabs is configured, the voice CLI can inspect it and change its model:

clankie voice status
clankie voice model set eleven_v4_turbo

eleven_v4_turbo selects the dialogue speech model. An unset model keeps eleven_flash_v2_5; clankie voice model clear restores that default. Check effectiveVoice in status for environment overrides, then clankie restart clankie when you're ready to interrupt active calls. Provider and voice-ID selection still need /voice; there is no headless setter for them.

Use this voice setup for a Discord voice room. The voice operating guide has setup and troubleshooting details.

Preferences

“Keep the team small and use efficient models. Ask Codex to implement, then have another agent review.” Open /fleet to save how you like him to work. The same editor lets you choose who closes delivered work and who prepares Clankie's own setup on already-linked machines. Both default to the lead: he closes after landing, passing checks and attaching evidence, and you can reopen. Choose Owner to keep closure In Review or to require approval for machine setup. Projects may override either setting independently. Sign-ins, payments, accounts and credentials retain your decision; setup does not restart existing work.

The fleet CLI lets you set the same preferences:

clankie fleet set --size small --models efficient \
  --notes "Use Codex for implementation and another agent for review."

Sizes are max, large, small, and solo; model preferences are optimal or efficient. These are targets for his judgment, not hard worker or spending caps. They do not install a harness or give it credentials.

Use /effort to pick a reasoning level supported by his model. The CLI is clankie effort set LEVEL. Use /routing to choose a routine model for everyday chat while keeping his main model for work. The CLI equivalent is clankie model routing set provider/model, using a model from your catalog; clankie model routing status shows the result.

Opinionated working skills are on by default. /skills lets you turn them off or back on; the CLI equivalents are clankie skills opinionated off and clankie skills opinionated on. Product and tool references stay available. Start a fresh session to drop guidance already loaded.

Skills

“Make a skill for how we review this project's changes.” Type $ in the console to browse available skills, or /skill-name task to use one. Skills give him reusable instructions and tool knowledge; they do not grant credentials or machine access.

Add your own SKILL.md in ~/.agents/skills/my-skill/, or in a project's .agents/skills/my-skill/ for conversations working in that project. He also reads his bundled roots and the skills directory under Pi's agent directory (normally ~/.pi/agent/skills). Use a distinct name: bundled names take precedence. Skills from those machine-wide folders are not listed on every turn; he finds them with skill_search when a task calls for one, and /skill-name still works.

For the bundled selection, use /skills or the skills CLI:

clankie skills
clankie skills exclude reflect
clankie skills include reflect

Only bundled opinionated skills can be excluded; product and repo-authored skills stay on. include removes that exclusion but does not turn the whole class back on. There is no CLI skill installer: adding your own skill means adding its files. Start a fresh session and reopen the console to refresh its picker. The bundled-skills guide explains discovery and which worker routes receive the guidance.

Discord

“Hang out in our server, but only jump in when we address you.” Use /discord to choose his servers and channels, and /persona for reply policy and chattiness. For a quieter room:

clankie persona set --reply-policy addressed --chattiness quiet
clankie discord status

The persona flags control his conversational habits; the Discord CLI controls where he participates. With reply policy addressed, --live-message-window sets how many messages he follows live after his last reply (default 5), before later messages wait for a catch-up. Zero removes that live follow-up window; all reads every admitted message regardless. It controls what he sees, never what he must say. For tokens and first setup, follow the Discord connection guide.

The voice room

“Join me in voice.” Configure the allowed voice servers and channels in /discord, then use /voice for his speech setup. The equivalent Discord fields include --voice-enabled, --voice-guild-ids, --voice-channel-ids, and --voice-channel-id. --voice-join-policy ambient keeps invitations with the configured ambient participants; guild_members lets members of allowed servers summon him, subject to the channel rules.

When you invite him, he can answer in text, greet the room aloud, or arrive quietly. Room joins and departures give him context to decide whether to stay, speak, or leave; an empty room does not start an automatic leave timer. You can ask him to leave, too. Voice behavior has the details; joining and leaving are conversation actions, not standalone clankie CLI commands.

Use /discord to choose voice consent. The default is explicit: each participant runs /clankie voice-consent opt-in in Discord for the active session. With presence, being in his active voice channel counts as consent. The owner handles disclosure: everyone in that room should know he transcribes while he is there. An explicit /clankie voice-consent opt-out always wins under either policy. ADR 0071 explains that choice.

The CLI equivalent is clankie discord set --voice-consent-policy explicit; choose presence only for a room whose participants understand it.

Full transcript logging is off by default. Enable it in /discord, or with clankie discord set --voice-transcript-logging-enabled on, then open /vt in the console to read it, or run clankie discord transcripts. It retains consented speech and Clankie's generated reply wording in a private local log, separate from the content-free receipts. Replies carry playback outcomes; interrupted text may include an unheard ending. No raw audio is saved. Turn it off with the same flag set to off. The voice log reference covers its location. Check clankie discord status for effective settings and the restart instruction.

Who gets a shell

Use /discord to review machine-access grants separately from room access. The CLI fields are --system-actor-user-ids, --system-actor-guild-ids, and --system-actor-channel-ids. These grant real machine tools, including a shell running as the Clankie service user. Simply letting him read or join a room grants none of that access.

An individually granted person gets machine tools in text and voice. In a shared room, that grant lasts for their turn; the next speaker does not inherit it. An official-bot DM with that person can keep a continuing work session. A trusted guild grant gives every admitted human in its scope machine access; the channel list can narrow it to selected rooms. Those rooms keep a separate, continuing work session. Everyone else stays social. See ADR 0105 and its lane-grant update.

Play and share

“Play Pokémon while we hang out.” Start with the play guide; clankie play status shows his current session. He needs a reachable PokeAgents world and his own world credential, not a local emulator. The optional Discord Activity gives people a live viewer.

Ask for music once he is in voice; the media guide lists the extra executables. Screen-share watching and Go Live require the separately enabled personal-lab body; the official bot cannot receive those pixels or publish Go Live.

Then the plumbing

Minecraft uses approved offline Java server profiles and shares Clankie's play body with Pokémon. Its continuous mind plays by default; explicit driver handoff lets a chosen native worker or the owner drive the same stay. Configure it through clankie minecraft or /minecraft; see the Minecraft reference for destination policy, action evidence, Chrome rendering and current limitations.

Choose his models

/setup gets the first model working. Return to /model to change it, /auth to manage provider sign-ins, and /provider for custom providers such as a local runtime. Use the live picker for supported models and authentication methods; provider support changes, and a subscription is not interchangeable with every API.

His conversational model, image model, video model, and voice provider are separate choices. /image-model, /video-model, and /voice configure their own capabilities. A working chat model alone does not enable them. Credentials belong in the interactive setup flows, not in a chat message or a command flag.

For scripts, clankie model set provider/model selects his conversational model. Reasoning effort, routing, and compaction have their own controls. The model reference explains custom configuration and provider resolution.

Bring your own team

“Help me implement this feature. Use Codex for the implementation and ask a second agent to review the result.” Open /connections; its CLI equivalent is clankie connections.

Clankie's built-in service runs on pi. Worker agents can use different supported harnesses, including Claude Code, Codex, and pi. Install and authenticate the harnesses you want on the machine that runs them. Choosing a worker harness does not replace Clankie's own model or runtime.

Open /connections to inspect execution runtimes and accounts. Herdr supplies the native worker terminals. Clankie hires and messages supported agents through their harness channels or session APIs, including remote agents over the fleet link. See the adapter guide and connection commands.

Give him ongoing work

In the local console:

/goal Improve the project's onboarding guide and verify its examples
/autonomy on

A goal gives that conversation a durable objective. Autonomy enables further turns and scheduled wakes; it does not grant new tools or access. Use /goal to inspect, accept a proposed goal, pause, resume, or clear the goal, and /autonomy off to stop new automatic continuations. Goals default to a 1,000,000 model-token budget; /goal --tokens <n> <objective> overrides it. An in-flight request or tool call may still finish. Service goals require a Pi-owned conversation; native harness seats refuse them. The console reference owns the exact syntax. These are console controls, with no standalone headless goal or autonomy command.

The service must remain running. For a Mac, clankie autostart enable starts it at login; it does not keep the Mac awake.

Connect your services

Use /connect for available account integrations; clankie accounts inspects the body's GitHub, Linear and Google catalog. Google Gmail/Calendar consent is read-only; Drive uses a file picker and selected-file permissions, with reading tools. Secret entry stays in the console. Account and mailbox connections have different setup and access rules. Clankie's mailbox connection is his own address, not automatic access to your personal inbox. The credential guide owns account identities and secret storage.

Work tracking follows the project's existing convention: Linear, GitHub issues, or files. The work-items package explains discovery. Following Linear notifications is a separate opt-in from connecting the account; use the setup reference.

His work-tracking guidance prefers useful visual evidence: screenshots or short clips of tangible results, charts of measured data, and diagrams of systems and flows. Visuals belong on the relevant work item with captions explaining what they show; proposals and sample data are labeled, with tests and source links supporting claims about completed work.

Workers do not automatically inherit every connected account. Worker access describes explicit, restricted grants and the current isolation limits.

Work with your computer

“Find this in my browser and help me finish it.” Use /browser to inspect his browser settings; clankie browser harnesses lists the computer-use harnesses he can hire.

Clankie uses Browser Use Pi with his own browser profile for browsing tasks. Machine-authorized turns can keep JavaScript variables and helpers between browser calls; ordinary social turns have browser-only tools. Inspect them with clankie browser tools. Harder work in your existing apps can go to an installed computer-use harness. Native macOS control also has a Peekaboo path with documented limits. The desktop-control reference distinguishes available tools from proven behavior; installing Clankie does not silently grant macOS permissions or guarantee background input isolation.

Build on the open-source service

“Help me build an integration with your service.” Start with clankie status to check the running services, or clankie mcp for an MCP client.

The console is one client of the service. A headless CLI, HTTP API, and MCP projection expose configuration and authorized tools for scripts, integrations, and other agent seats. Start with the reference index, then the architecture and contributor guide.

The public service is Apache-2.0 except the separately licensed AGPL native Discord media executable. The companion app and managed service have separate, private sources. The repository license section states the boundary. The Linux deployment is an advanced alternative to the Mac setup, with a different capability set.