Skip to content

Commands partyline

Teuk edited this page Oct 6, 2026 · 1 revision

Partyline command reference

This is the dot-command catalogue for the supplied 3.6dev-20261006_084503 snapshot. Partyline retains the TCP/DCC setup, SSH tunnel and connection examples. Commands below are typed after Partyline authentication, not in IRC or your shell.

Partyline login permits Master and Owner. “Master+” below includes Owner. Some handlers additionally enforce Owner; command text/history is visible to other authenticated Partyline sessions, so do not put secrets in dot-commands. Non-dot text is Partyline chat, not IRC broadcast. .bcast explicitly broadcasts to IRC.

Index

Command Access Parameters
.achievementprofile Master+ Details
.ai Master+ Details
.aistats Master+ Details
.ban Master+ Details
.bans Master+ Details
.bcast Master+ Details
.boot Owner Details
.channels Master+ Details
.cmdcooldown Master+ Details
.console Master+ Details
.dbstats Master+ Details
.dccstat Master+ Details
.die Owner Details
.eval Owner Details
.floodset Master+ Details
.floodstatus Master+ Details
.flushcooldown Master+ Details
.help Master+ Details
.history Master+ Details
.join Master+ Details
.karma Master+ Details
.karmahist Master+ Details
.kick Master+ Details
.kv Master+ Details
.log Master+ Details
.logs Master+ Details
.lusers Master+ Details
.match Master+ Details
.metrics Master+ Details
.motd Master+ read; Owner write Details
.netsplit Master+ Details
.nick Master+ Details
.nickinfo Master+ Details
.part Master+ Details
.persona Master+ Details
.ping Master+ Details
.plugins Master+ inspection/enable/disable; Owner lifecycle and v3 mutations Details
.purgereminders Master+ Details
.quit Master+ Details
.quota Master+ Details
.raw Owner Details
.rehash Master+ Details
.reload Owner Details
.reloadconf Master+ Details
.remind Master+ Details
.restart Owner Details
.say Master+ Details
.schedule Master+ Details
.scriptdryrun Master+ Details
.seen Master+ Details
.stat Master+ Details
.stats Master+ Details
.status Master+ Details
.timers Master+ Details
.top Master+ Details
.topic Master+ Details
.unban Master+ Details
.unmute Master+ Details
.uptime Master+ Details
.who Master+ Details
.whois Master+ Details
.whom Master+ Details

achievementprofile

Access: Master+.

.achievementprofile <nick> <#channel>

Read durable achievement identity, evidence, counters and aliases. Never creates/merges a profile.

ai

Access: Master+.

.ai <prompt...>
.ai status
.ai reset
.ai forget
.ai history
.ai history clear [nick]
.ai quota
.ai stats
.ai <model|models>
.ai pin [list|clear|text...]
.ai summary [5..50]

Uses the Partyline login and first sorted joined IRC channel (fallback partyline for ordinary prompts). reset clears that scoped history; forget clears scoped history/persona/pin. history clear [nick] clears all matching nick history scopes; read shows at most six recent entries. pin/pin list lists active pins; clear removes caller-scoped pin; text stores at most 500 characters. summary selects that joined channel’s latest messages, default ten clamped 5–50, with an explicit Administrator+ handler check. IRC summary period/language/public/channel options are not supported by this dot-parser.

aistats

Access: Master+.

.aistats

Dispatch alias of .ai stats.

ban

Access: Master+.

.ban <#channel> <nick> [duration] [reason...]

WHOIS-based persistent ban. Duration accepts positive minutes or m/h/d/w; perm/permanent/never or omission is permanent. No separate ban-level parameter on this dot-command.

bans

Access: Master+.

.bans <#channel>
.ban <#channel>

Read active stored bans and IDs; .ban #channel without nick is the list dispatch alias.

bcast

Access: Master+.

.bcast <message...>

Send a message to all joined IRC channels; intentional broadcast, not Partyline chat.

boot

Access: Owner.

.boot <handle>

Disconnect the matching Partyline user/session.

channels

Access: Master+.

.channels

List channel JOIN/IRC/DB/Hailo/owner state.

cmdcooldown

Access: Master+.

.cmdcooldown <#channel> <command> <0..3600>

Seconds clamp to 3600; zero removes the per-command cooldown. Name is a word token without !. Runtime-only; resets an active cooldown. The bare no-argument read branch is unreachable from the current dispatcher; see audit notes.

console

Access: Master+.

.console [0..5|off]

Show or set log redirect for this session: 0 INFO, 1–5 progressively verbose debug; off disables it.

dbstats

Access: Master+.

.dbstats

Read database connection/query counters; no parameters.

dccstat

Access: Master+.

.dccstat
.dcc

Read DCC listeners and Partyline sessions; .dcc is a dispatch alias.

die

Access: Owner.

.die [reason...]

Terminate the bot. With the update-safe systemd template explicit shutdown exits 75 and prevents automatic restart.

eval

Access: Owner.

.eval <Perl...>

Evaluate Perl in the bot process/context; full privileged execution, not a read-only diagnostic.

floodset

Access: Master+.

.floodset <#channel> [window] [max_cmds] [silence_secs] [warn-only]

Runtime overrides; numeric values clamp to at least 1. Fallbacks: window 10s, maximum eight commands, silence 30s. Omitted fields use defaults. Resets that channel’s current flood state. warn-only warns without silence. Different from IRC antifloodset (three numeric fields).

floodstatus

Access: Master+.

.floodstatus

Read current flood/mute/cooldown state.

flushcooldown

Access: Master+.

.flushcooldown [#channel]
.flushcooldown <nick> <#channel>

Clear karma anti-spam cooldown, globally if omitted, for the named channel, or for one nick/channel pair. It is not a command-name selector.

help

Access: Master+.

.help

Show the built-in dot-command help. This page records parser corrections beyond that abbreviated help.

history

Access: Master+.

.history

Read the last ten timestamped commands of this session; .history itself is excluded.

join

Access: Master+.

.join <#channel> [key]

JOIN with optional key.

karma

Access: Master+.

.karma <nick> [#channel]

Read target karma; optional channel limits the scope.

karmahist

Access: Master+.

.karmahist [nick]

Read at most ten recent karma changes on the first sorted joined channel; optional nick filter.

kick

Access: Master+.

.kick <nick> <#channel> [reason...]

Nick precedes channel, unlike IRC kick. Default reason is supplied by the handler.

kv

Access: Master+.

.kv set <key> <value...>
.kv get <key>
.kv del <key>
.kv list

In-memory diagnostic key/value store; does not imply restart durability or access to arbitrary DB/config keys.

log

Access: Master+.

.log [1..100]

Tail the application log; default 20, zero uses 20, maximum 100. Distinct from SQL channel .logs.

logs

Access: Master+.

.logs <#channel> [1..50]

Read latest CHANNEL_LOG messages; default ten, capped fifty.

lusers

Access: Master+.

.lusers [refresh]

Read cached network population; refresh requests fresh LUSERS.

match

Access: Master+.

.match <handle|wildcard>

Read matching Mediabot accounts; * and ? are wildcard selectors.

metrics

Access: Master+.

.metrics

Read the Prometheus metrics snapshot; no parameters.

motd

Access: Master+ read; Owner write.

.motd
.motd <text...>
.motd add <line...>
.motd clear

Read with no argument; Owner required to replace/append/clear the in-memory MOTD.

netsplit

Access: Master+.

.netsplit

Read netsplit/rejoin state and nicklist diagnostics.

nick

Access: Master+.

.nick <newnick>

Change the IRC nick, without renaming an OS/Services account.

nickinfo

Access: Master+.

.nickinfo <nick>

Read stored account information for the nickname; no mutation.

part

Access: Master+.

.part <#channel>

PART a joined channel; this dot-command does not accept a free-text reason.

persona

Access: Master+.

.persona
.persona <nick> [#channel] [clear]

No arguments lists active Claude personas. Nick reads matching entries; channel narrows the scope; clear deletes matching personas. Does not set persona text; IRC ai persona does.

ping

Access: Master+.

.ping

Check that this Partyline session answers.

plugins

Access: Master+ inspection/enable/disable; Owner lifecycle and v3 mutations.

.plugins
.plugins <loaded|config|discoverv3|overviewv3>
.plugins <info|doctor|failures|quarantines|permissions> <name>
.plugins why <name> <#channel>
.plugins load <Perl::Module> [name]
.plugins loadscript <relative/script.pl|.py|.tcl> [name]
.plugins <unload|reload|cleardata> <name>
.plugins <enable|disable> <name>
.plugins loadv3 <package> [capability,...]
.plugins policy <name> <#channel> <off|observe|on> [key=value ...]
.plugins resetpolicy <name> <#channel>
.plugins <quarantine|unquarantine> <name> <command|event|http_callback|job> <resource> <#channel>
.plugins clearv3data <package>

No argument reads summary. Read-only inspection: Master+. v2 load/loadscript/unload/reload/cleardata and all v3 mutations: Owner. enable/disable: Master+. Loading v3 starts disabled with no channel opt-in; configure observe, then enable, then deliberately choose on. resetpolicy returns the channel to off. Policy keys must match [a-z][a-z0-9_]{0,47}, with values/types/choices from that package’s config schema, not a universal field list. Tokens are space-separated key=value; quote syntax is not a shell parser. loadv3 grants only manifest-requested capabilities, comma-separated; omission/- gives no grants. quarantine isolates one resource/channel and unquarantine releases it; repository cleanup is explicit and package-scoped. Full manifest/protocol, lifecycle, policy persistence and HTTP/job rules remain in Developing plugins and Plugin/script bridge.

purgereminders

Access: Master+.

.purgereminders

Clean delivered reminder rows; it is not a user’s reminder cancellation form.

quit

Access: Master+.

.quit

Close only this Partyline connection.

quota

Access: Master+.

.quota [nick]

Read Claude rate limits for all active identities or the selected nick.

raw

Access: Owner.

.raw <IRC command...>

Send a raw IRC command.

rehash

Access: Master+.

.rehash

Reload configuration and documented runtime state; does not reload changed Perl modules.

reload

Access: Owner.

.reload

Owner-only in-place config reload compatibility command; not code deployment.

reloadconf

Access: Master+.

.reloadconf

Reload the configuration file in place.

remind

Access: Master+.

.remind <nick> <message...>

Stores an ordinary reminder on the first joined channel in sorted order. There is no channel argument or timed/recurring parser here; a #channel after the nick becomes part of the message. Use IRC remind for explicit channel-context scheduling.

restart

Access: Owner.

.restart [reason...]

Reconnect IRC without terminating the Unix process. It is not systemctl restart.

say

Access: Master+.

.say <#channel|nick> <message...>

Send IRC text to an explicit channel or nick.

schedule

Access: Master+.

.schedule [list]
.schedule <status|start|stop|restart> <task_name>

List defaults when omitted. Named scheduler task required for all other operations; checks existence/state before changing it. This is not an OS/systemd restart.

scriptdryrun

Access: Master+.

.scriptdryrun [status|last|config|timers|canceltimers|events|clearevents|reload]

Default status. Reads the external bridge configuration/last result, pending timers and event windows. canceltimers cancels already-pending bridge timers; clearevents clears event windows; reload refreshes the bridge from already-loaded config while preserving counters, armed timers and cooldown windows; first use .reloadconf/.rehash if the config file changed. These do not execute a new external command. See bridge reference for protocol and runtime gates.

seen

Access: Master+.

.seen <nick|wildcard>

Read last-seen channel-log history; e.g. .seen teu*.

stat

Access: Master+.

.stat

List registered channels, membership, owner and chansets.

stats

Access: Master+.

.stats [#channel]

Top three speakers and karma; omitted channel uses the handler’s default joined-channel selection.

status

Access: Master+.

.status

Read runtime/Partyline session status; differs from .stat channel policy summaries.

timers

Access: Master+.

.timers

List scheduled tasks; change a named task with .schedule.

top

Access: Master+.

.top <#channel> [1..15]
.top all [1..15]

Explicit scope required; default count five. Bare .top prints usage, rather than running a global query.

topic

Access: Master+.

.topic <#channel> [text...]

No text reads current topic; text sets it if the bot has IRC permission.

unban

Access: Master+.

.unban <#channel> <mask|id>

Remove the selected active ban through the channel ban path.

unmute

Access: Master+.

.unmute <nick>

Lift the runtime temporary nick mute; not an IRC server ban removal.

uptime

Access: Master+.

.uptime

Read bot/server uptime.

who

Access: Master+.

.who <nick>
.who <#channel>

Nick: find joined channels; channel: list current members with IRC modes/account levels.

whois

Access: Master+.

.whois <nick>

Send IRC WHOIS and return its response to the requesting session.

whom

Access: Master+.

.whom

List connected authenticated Partyline users.

Plugin v3 grant names

Implemented grants in this snapshot: irc.reply, irc.notice, irc.channel_message, events.subscribe, scheduler.jobs, http.fetch, storage.kv, data.quotes.read, data.quotes.write, data.factoids.read, data.factoids.write, data.channel_activity.read. A grant not requested by the package is refused. A grant alone never enables a channel. Channel policies have a maximum of 128 channels per package; the private persistent boot ledger is capped at 64 packages/1 MiB.

Rate and state boundaries

Authenticated input permits ten commands in five seconds; excessive input is dropped with one warning per window, and sustained thirty-line flood closes the session. Most diagnostics are read-only. Scheduler, cooldown, console, AI and plugin lifecycle mutations have the side effects described above; runtime-only state should not be mistaken for a config-file edit.

Clone this wiki locally