Overview of commands
Commands let you interact with IRC servers, change the client interface, and program EPIC. The groups below provide a navigation guide to the current built-in command set. Follow each link for syntax, arguments, defaults, errors, and examples; commands in one group do not necessarily share those details.
At the input prompt, begin a command with /, for example /join #example. Ordinary text is normally sent to the current target. Inside a script block, statements are interpreted as commands or expressions according to ircII syntax. Command names are case-insensitive; argument text can still be case-sensitive or interpreted by the server.
An alias can replace the normal behavior of a built-in command with the same name. A double prefix such as //echo text bypasses the alias and selects the built-in command when present. If a name is unrecognized, configured unknown-command dispatch or an unknown_command hook can affect its handling; it is not necessarily a locally rejected typo.
IRC commands
| Task | Commands | Purpose |
|---|---|---|
| Channels | invite, join, kick, knock, mode, names, part, topic, who | Invite or join, manage channel state, request membership information, or leave. Permissions and returned data depend on the server. |
| Messages and actions | msg, notice, me, describe, say, send, wallchops, wallops | Send messages, notices, or actions. send prefers the current query over channel; say prefers the current channel. |
| Client information requests | ctcp, ping | Send CTCP requests; ping measures a client CTCP response, not an operating-system ICMP ping. |
| Network information | admin, info, links, list, lusers, map, motd, stats, time, trace, version | Request server/network information. Some commands have local display behavior as well; see each command page. |
| Identity and presence | away, nick, ison, userhost, whois, whowas | Set presence or nickname and request user information. Queries can have asynchronous script callbacks. |
| Operator requests | connect, deop, die, kill, oper, rehash, restart, squit | Request operator actions or authentication. connect asks a server to link servers; it does not establish your own client connection. |
| Network-specific requests | rping, servlist, silence, squery, uping, userip, usrip, note | Send requests whose availability, syntax, and meaning depend on the network. Recognition by EPIC is not server support. |
| Protocol text | quote, xquote | Forward protocol text, with xquote providing additional server/encoding controls. |
Programming
| Task | Commands | Purpose |
|---|---|---|
| Control flow | break, continue, do, fe, fec, for, foreach, if, repeat, return, switch, unless, until, while | Conditionals, loops, iteration, and control transfer. return has function-result behavior when used in a function context. |
| Definitions and events | alias, on, hook, shook, stub | Define commands/functions and event handlers, generate script events, or arrange definitions loaded on demand. |
| Variables and storage | assign, local, push, pop, shift, unshift, stack | Assign values, create locals, manipulate word lists, and save or restore supported definitions/state. |
| Evaluation and context | eval, xeval, bless, call | Evaluate code, select window/server context, expose a locked local frame, or inspect the call stack. See individual scope rules. |
| Scheduling and waits | defer, queue, timer, wait, pause, sleep, usleep | Defer/queue execution, schedule callbacks, wait for events, or pause. These commands do not all have the same blocking or callback behavior. |
| Scripts and packages | load, which, package, subpackage, unload | Load or locate scripts and associate definitions with packages for later removal. unload is package removal, not reversal of every effect a file caused. |
| Input and output | echo, xecho, input, input_char, sendline, parsekey, type, xtype | Display text, request input, process an input line, invoke a key action, or edit/simulate input. sendline can execute commands, not merely send text. |
| Testing and diagnostics | abort, call, debuglog, dump, pretend, xdebug | Diagnostics, intentional abort, definition removal, synthetic protocol input, and debugging controls. These are operational commands with effects described on their own pages. |
Client interface and connections
| Task | Commands | Purpose |
|---|---|---|
| Windows | window, clear, unclear, shh, lastlog, log | Manage windows and display views, inspect retained output, and control logging. shh suppresses output in the current output context; it is not server-side silence. |
| Configuration | set, bind, rbind, encoding | Query/change registered settings, install or inspect key bindings, and manage character encodings. |
| Server connections | server, disconnect, reconnect, hostname, vhosts | Select and manage your own server connections and local host choices. Automatic retry policy can additionally come from a script. |
| Local environment | cd, setenv, exec, beep, license | Change directory/environment, run local processes, signal the terminal, or display license information. |
| Exit | quit, exit | Exit the client through the built-in quit handling. |
Script-provided commands
The available command vocabulary also depends on loaded scripts. For example, the supplied builtins environment defines compatibility aliases such as bye and ircname and loads the notify MONITOR wrapper. Optional scripts provide commands such as save, scan, and renumber. These names are not proof that a corresponding C built-in exists.
A personal startup file can replace the default global setup. Consequently, two installations or sessions with the same executable can expose different aliases, pseudo-settings, completion behavior, and hooks. Load the relevant script and its dependencies before relying on its commands.
External language support
When compiled with Python support, python and pydirect provide Python execution interfaces. Availability is conditional on the build and does not imply that every legacy embedded-language interface is present. Local process execution through exec is separate from embedded Python support.
Server-dependent behavior
Server requests are subject to connection state, network extensions, privileges, target visibility, and server policy. A command can be recognized and transmitted while the server rejects it or returns different information. Operator commands do not grant privileges merely because they are listed here. Commands that only modify local windows or script definitions need not send any IRC request.
This overview has no single return value or default argument set. A command's displayed output, script function results, asynchronous callbacks, and effects on client/server state are separate interfaces. Consult the individual page rather than inferring behavior from a shared C handler or a familiar command name.
Examples
/window list
/set clock on
/echo Local client text
These inspect windows, enable a registered setting, and print locally. To request a server operation, use its documented command, for example /motd on a connected session. A server reply is asynchronous and is not the return value of a script function.
Source references
source/commands.c: built-in command table, alias precedence, double-prefix handling, interactive parsing, and unknown-command dispatch.source/alias.c: aliases, variables, stubs, packages, and definition removal.source/if.c: conditionals and iteration.source/hook.candsource/keys.c: event and key-binding interfaces.source/server.c,source/window.c, andsource/who.c: connections, local windows, and server-query callbacks.source/python.c: optional Python integration.script/builtinsandscript/global: supplied aliases and startup dependencies.