[[command_irc_admin]]
[command]*`admin`* find information about the administrator of the server::

----
/admin  [<target>]

target: server name
----

[[command_irc_allchan]]
[command]*`allchan`* execute a command on all channels of all connected servers::

----
/allchan  [-current] [-exclude=<channel>[,<channel>...]] <command> [<arguments>]

 -current: execute command for channels of current server only
 -exclude: exclude some channels (wildcard "*" is allowed)
  command: command to execute
arguments: arguments for command (special variables $nick, $channel and $server are replaced by their value)

Examples:
  execute '/me is testing' on all channels:
    /allchan me is testing
  say 'hello' everywhere but not on #weechat:
    /allchan -exclude=#weechat msg * hello
  say 'hello' everywhere but not on #weechat and channels beginning with #linux:
    /allchan -exclude=#weechat,#linux* msg * hello
----

[[command_irc_allpv]]
[command]*`allpv`* execute a command on all private buffers of all connected servers::

----
/allpv  [-current] [-exclude=<nick>[,<nick>...]] <command> [<arguments>]

 -current: execute command for private buffers of current server only
 -exclude: exclude some nicks (wildcard "*" is allowed)
  command: command to execute
arguments: arguments for command (special variables $nick, $channel and $server are replaced by their value)

Examples:
  execute '/me is testing' on all private buffers:
    /allpv me is testing
  say 'hello' everywhere but not for nick foo:
    /allpv -exclude=foo msg * hello
  say 'hello' everywhere but not for nick foo and nicks beginning with bar:
    /allpv -exclude=foo,bar* msg * hello
  close all private buffers:
    /allpv close
----

[[command_irc_allserv]]
[command]*`allserv`* execute a command on all connected servers::

----
/allserv  [-exclude=<server>[,<server>...]] <command> [<arguments>]

 -exclude: exclude some servers (wildcard "*" is allowed)
  command: command to execute
arguments: arguments for command (special variables $nick, $channel and $server are replaced by their value)

Examples:
  change nick on all servers:
    /allserv nick newnick
  set away on all servers:
    /allserv away I'm away
  do a whois on my nick on all servers:
    /allserv whois $nick
----

[[command_irc_ban]]
[command]*`ban`* ban nicks or hosts::

----
/ban  [<channel>] [<nick> [<nick>...]]

channel: channel name
   nick: nick or host

Without argument, this command display ban list for current channel.
----

[[command_irc_connect]]
[command]*`connect`* connect to IRC server(s)::

----
/connect  <server> [<server>...] [-<option>[=<value>]] [-no<option>] [-nojoin] [-switch]
          -all|-auto|-open [-nojoin] [-switch]

    server: server name, which can be:
            - internal server name (created by /server add, recommended usage)
            - hostname/port or IP/port (this will create a TEMPORARY server), port is 6667 by default
            - URL with format: irc[6][s]://[nickname[:password]@]irc.example.org[:port][/#channel1][,#channel2[...]]
    option: set option for server (for boolean option, value can be omitted)
  nooption: set boolean option to 'off' (for example: -nossl)
      -all: connect to all servers defined in configuration
     -auto: connect to servers with autoconnect enabled
     -open: connect to all opened servers that are not currently connected
   -nojoin: do not join any channel (even if autojoin is enabled on server)
   -switch: switch to next server address

To disconnect from a server or stop any connection attempt, use command /disconnect.

Examples:
  /connect freenode
  /connect irc.oftc.net/6667
  /connect irc6.oftc.net/6667 -ipv6
  /connect irc6.oftc.net/6697 -ipv6 -ssl
  /connect my.server.org/6697 -ssl -password=test
  /connect irc://nick@irc.oftc.net/#channel
  /connect -switch
----

[[command_irc_ctcp]]
[command]*`ctcp`* send a CTCP message (Client-To-Client Protocol)::

----
/ctcp  <target> <type> [<arguments>]

 target: nick or channel name to send CTCP to
   type: CTCP type (examples: "version", "ping", ..)
arguments: arguments for CTCP
----

[[command_irc_cycle]]
[command]*`cycle`* leave and rejoin a channel::

----
/cycle  [<channel>[,<channel>...]] [<message>]

channel: channel name
message: part message (displayed to other users)
----

[[command_irc_dcc]]
[command]*`dcc`* start a DCC (file transfer or direct chat)::

----
/dcc  chat <nick>
      send <nick> <file>

nick: nick
file: filename (on local host)

Examples:
  chat with nick "toto":
    /dcc chat toto
  send file "/home/foo/bar.txt" to nick "toto":
    /dcc send toto /home/foo/bar.txt
----

[[command_irc_dehalfop]]
[command]*`dehalfop`* remove channel half-operator status from nick(s)::

----
/dehalfop  <nick> [<nick>...]

nick: nick or mask (wildcard "*" is allowed)
   *: remove channel half-operator status from everybody on channel except yourself
----

[[command_irc_deop]]
[command]*`deop`* remove channel operator status from nick(s)::

----
/deop  <nick> [<nick>...]
       * -yes

nick: nick or mask (wildcard "*" is allowed)
   *: remove channel operator status from everybody on channel except yourself
----

[[command_irc_devoice]]
[command]*`devoice`* remove voice from nick(s)::

----
/devoice  <nick> [<nick>...]
          * -yes

nick: nick or mask (wildcard "*" is allowed)
   *: remove voice from everybody on channel
----

[[command_irc_die]]
[command]*`die`* shutdown the server::

----
/die  [<target>]

target: server name
----

[[command_irc_disconnect]]
[command]*`disconnect`* disconnect from one or all IRC servers::

----
/disconnect  [<server>|-all|-pending [<reason>]]

  server: internal server name
    -all: disconnect from all servers
-pending: cancel auto-reconnection on servers currently reconnecting
  reason: reason for the "quit"
----

[[command_irc_halfop]]
[command]*`halfop`* give channel half-operator status to nick(s)::

----
/halfop  <nick> [<nick>...]
         * -yes

nick: nick or mask (wildcard "*" is allowed)
   *: give channel half-operator status to everybody on channel
----

[[command_irc_ignore]]
[command]*`ignore`* ignore nicks/hosts from servers or channels::

----
/ignore  list
         add [re:]<nick> [<server> [<channel>]]
         del <number>|-all

     list: list all ignores
      add: add an ignore
     nick: nick or hostname (can be a POSIX extended regular expression if "re:" is given or a mask using "*" to replace one or more chars)
      del: delete an ignore
   number: number of ignore to delete (look at list to find it)
     -all: delete all ignores
   server: internal server name where ignore is working
  channel: channel name where ignore is working

Note: the regular expression can start with "(?-i)" to become case sensitive.

Examples:
  ignore nick "toto" everywhere:
    /ignore add toto
  ignore host "toto@domain.com" on freenode server:
    /ignore add toto@domain.com freenode
  ignore host "toto*@*.domain.com" on freenode/#weechat:
    /ignore add toto*@*.domain.com freenode #weechat
----

[[command_irc_info]]
[command]*`info`* get information describing the server::

----
/info  [<target>]

target: server name
----

[[command_irc_invite]]
[command]*`invite`* invite a nick on a channel::

----
/invite  <nick> [<nick>...] [<channel>]

   nick: nick
channel: channel name
----

[[command_irc_ison]]
[command]*`ison`* check if a nick is currently on IRC::

----
/ison  <nick> [<nick>...]

nick: nick
----

[[command_irc_join]]
[command]*`join`* join a channel::

----
/join  [-noswitch] [-server <server>] [<channel1>[,<channel2>...]] [<key1>[,<key2>...]]

-noswitch: do not switch to new buffer
   server: send to this server (internal name)
  channel: channel name to join
      key: key to join the channel (channels with a key must be the first in list)

Examples:
  /join #weechat
  /join #protectedchan,#weechat key
  /join -server freenode #weechat
  /join -noswitch #weechat
----

[[command_irc_kick]]
[command]*`kick`* kick a user out of a channel::

----
/kick  [<channel>] <nick> [<reason>]

channel: channel name
   nick: nick
 reason: reason (special variables $nick, $channel and $server are replaced by their value)
----

[[command_irc_kickban]]
[command]*`kickban`* kick a user out of a channel and ban the host::

----
/kickban  [<channel>] <nick> [<reason>]

channel: channel name
   nick: nick
 reason: reason (special variables $nick, $channel and $server are replaced by their value)

It is possible to kick/ban with a mask, nick will be extracted from mask and replaced by "*".

Example:
  ban "*!*@host.com" and then kick "toto":
    /kickban toto!*@host.com
----

[[command_irc_kill]]
[command]*`kill`* close client-server connection::

----
/kill  <nick> [<reason>]

  nick: nick
reason: reason
----

[[command_irc_links]]
[command]*`links`* list all servernames which are known by the server answering the query::

----
/links  [[<server>] <server_mask>]

     server: this server should answer the query
server_mask: list of servers must match this mask
----

[[command_irc_list]]
[command]*`list`* list channels and their topic::

----
/list  [<channel>[,<channel>...]] [<server>] [-re <regex>]

channel: channel to list
 server: server name
  regex: POSIX extended regular expression used to filter results (case insensitive, can start by "(?-i)" to become case sensitive)

Examples:
  list all channels on server (can be very slow on large networks):
    /list
  list channel #weechat:
    /list #weechat
  list all channels beginning with "#weechat" (can be very slow on large networks):
    /list -re #weechat.*
----

[[command_irc_lusers]]
[command]*`lusers`* get statistics about the size of the IRC network::

----
/lusers  [<mask> [<target>]]

  mask: servers matching the mask only
target: server for forwarding request
----

[[command_irc_map]]
[command]*`map`* show a graphical map of the IRC network::

----
----

[[command_irc_me]]
[command]*`me`* send a CTCP action to the current channel::

----
/me  <message>

message: message to send
----

[[command_irc_mode]]
[command]*`mode`* change channel or user mode::

----
/mode  [<channel>] [+|-]o|p|s|i|t|n|m|l|b|e|v|k [<arguments>]
       <nick> [+|-]i|s|w|o

channel modes:
  channel: channel name to modify (default is current one)
  o: give/take channel operator privileges
  p: private channel flag
  s: secret channel flag
  i: invite-only channel flag
  t: topic settable by channel operator only flag
  n: no messages to channel from clients on the outside
  m: moderated channel
  l: set the user limit to channel
  b: set a ban mask to keep users out
  e: set exception mask
  v: give/take the ability to speak on a moderated channel
  k: set a channel key (password)
user modes:
  nick: nick to modify
  i: mark a user as invisible
  s: mark a user for receive server notices
  w: user receives wallops
  o: operator flag

List of modes is not comprehensive, you should read documentation about your server to see all possible modes.

Examples:
  protect topic on channel #weechat:
    /mode #weechat +t
  become invisible on server:
    /mode nick +i
----

[[command_irc_motd]]
[command]*`motd`* get the "Message Of The Day"::

----
/motd  [<target>]

target: server name
----

[[command_irc_msg]]
[command]*`msg`* send message to a nick or channel::

----
/msg  [-server <server>] <target>[,<target>...] <text>

server: send to this server (internal name)
target: nick or channel (may be mask, '*' = current channel)
  text: text to send
----

[[command_irc_names]]
[command]*`names`* list nicks on channels::

----
/names  [<channel>[,<channel>...]]

channel: channel name
----

[[command_irc_nick]]
[command]*`nick`* change current nick::

----
/nick  [-all] <nick>

-all: set new nick for all connected servers
nick: new nick
----

[[command_irc_notice]]
[command]*`notice`* send notice message to user::

----
/notice  [-server <server>] <target> <text>

server: send to this server (internal name)
target: nick or channel name
  text: text to send
----

[[command_irc_notify]]
[command]*`notify`* add a notification for presence or away status of nicks on servers::

----
/notify  add <nick> [<server> [-away]]
         del <nick>|-all [<server>]

   add: add a notification
  nick: nick
server: internal server name (by default current server)
 -away: notify when away message is changed (by doing whois on nick)
   del: delete a notification
  -all: delete all notifications

Without argument, this command displays notifications for current server (or all servers if command is issued on core buffer).

Examples:
  notify when "toto" joins/quits current server:
    /notify add toto
  notify when "toto" joins/quits freenode server:
    /notify add toto freenode
  notify when "toto" is away or back on freenode server:
    /notify add toto freenode -away
----

[[command_irc_op]]
[command]*`op`* give channel operator status to nick(s)::

----
/op  <nick> [<nick>...]
     * -yes

nick: nick or mask (wildcard "*" is allowed)
   *: give channel operator status to everybody on channel
----

[[command_irc_oper]]
[command]*`oper`* get operator privileges::

----
/oper  <user> <password>

    user: user
password: password
----

[[command_irc_part]]
[command]*`part`* leave a channel::

----
/part  [<channel>[,<channel>...]] [<message>]

channel: channel name to leave
message: part message (displayed to other users)
----

[[command_irc_ping]]
[command]*`ping`* send a ping to server::

----
/ping  <server1> [<server2>]

server1: server
server2: forward ping to this server
----

[[command_irc_pong]]
[command]*`pong`* answer to a ping message::

----
/pong  <daemon> [<daemon2>]

 daemon: daemon who has responded to Ping message
daemon2: forward message to this daemon
----

[[command_irc_query]]
[command]*`query`* send a private message to a nick::

----
/query  [-server <server>] <nick>[,<nick>...] [<text>]

server: send to this server (internal name)
  nick: nick
  text: text to send
----

[[command_irc_quiet]]
[command]*`quiet`* quiet nicks or hosts::

----
/quiet  [<channel>] [<nick> [<nick>...]]

channel: channel name
   nick: nick or host

Without argument, this command display quiet list for current channel.
----

[[command_irc_quote]]
[command]*`quote`* send raw data to server without parsing::

----
/quote  [-server <server>] <data>

server: send to this server (internal name)
  data: raw data to send
----

[[command_irc_reconnect]]
[command]*`reconnect`* reconnect to server(s)::

----
/reconnect  <server> [<server>...] [-nojoin] [-switch]
            -all [-nojoin] [-switch]

 server: server to reconnect (internal name)
   -all: reconnect to all servers
-nojoin: do not join any channel (even if autojoin is enabled on server)
-switch: switch to next server address
----

[[command_irc_rehash]]
[command]*`rehash`* tell the server to reload its config file::

----
/rehash  [<option>]

option: extra option, for some servers
----

[[command_irc_remove]]
[command]*`remove`* force a user to leave a channel::

----
/remove  [<channel>] <nick> [<reason>]

channel: channel name
   nick: nick
 reason: reason (special variables $nick, $channel and $server are replaced by their value)
----

[[command_irc_restart]]
[command]*`restart`* tell the server to restart itself::

----
/restart  [<target>]

target: server name
----

[[command_irc_sajoin]]
[command]*`sajoin`* force a user to join channel(s)::

----
/sajoin  <nick> <channel>[,<channel>...]

   nick: nick
channel: channel name
----

[[command_irc_samode]]
[command]*`samode`* change mode on channel, without having operator status::

----
/samode  <channel> <mode>

channel: channel name
   mode: mode for channel
----

[[command_irc_sanick]]
[command]*`sanick`* force a user to use another nick::

----
/sanick  <nick> <new_nick>

    nick: nick
new_nick: new nick
----

[[command_irc_sapart]]
[command]*`sapart`* force a user to leave channel(s)::

----
/sapart  <nick> <channel>[,<channel>...]

   nick: nick
channel: channel name
----

[[command_irc_saquit]]
[command]*`saquit`* force a user to quit server with a reason::

----
/saquit  <nick> <reason>

  nick: nick
reason: reason
----

[[command_irc_server]]
[command]*`server`* list, add or remove IRC servers::

----
/server  list|listfull [<server>]
         add <server> <hostname>[/<port>] [-temp] [-<option>[=<value>]] [-no<option>]
         copy|rename <server> <new_name>
         del|keep <server>
         deloutq|jump|raw

    list: list servers (without argument, this list is displayed)
listfull: list servers with detailed info for each server
     add: create a new server
  server: server name, for internal and display use
hostname: name or IP address of server, with optional port (default: 6667), many addresses can be separated by a comma
    temp: create temporary server (not saved)
  option: set option for server (for boolean option, value can be omitted)
nooption: set boolean option to 'off' (for example: -nossl)
    copy: duplicate a server
  rename: rename a server
    keep: keep server in config file (for temporary servers only)
     del: delete a server
 deloutq: delete messages out queue for all servers (all messages WeeChat is currently sending)
    jump: jump to server buffer
     raw: open buffer with raw IRC data

Examples:
  /server listfull
  /server add oftc irc.oftc.net/6697 -ssl -autoconnect
  /server add oftc6 irc6.oftc.net/6697 -ipv6 -ssl
  /server add freenode2 chat.eu.freenode.net/6667,chat.us.freenode.net/6667
  /server add freenode3 irc.freenode.net -password=mypass
  /server copy oftc oftcbis
  /server rename oftc newoftc
  /server del freenode
  /server deloutq
----

[[command_irc_service]]
[command]*`service`* register a new service::

----
/service  <nick> <reserved> <distribution> <type> <reserved> <info>

distribution: visibility of service
        type: reserved for future usage
----

[[command_irc_servlist]]
[command]*`servlist`* list services currently connected to the network::

----
/servlist  [<mask> [<type>]]

mask: list only services matching this mask
type: list only services of this type
----

[[command_irc_squery]]
[command]*`squery`* deliver a message to a service::

----
/squery  <service> <text>

service: name of service
   text: text to send
----

[[command_irc_squit]]
[command]*`squit`* disconnect server links::

----
/squit  <server> <comment>

 server: server name
comment: comment
----

[[command_irc_stats]]
[command]*`stats`* query statistics about server::

----
/stats  [<query> [<server>]]

 query: c/h/i/k/l/m/o/y/u (see RFC1459)
server: server name
----

[[command_irc_summon]]
[command]*`summon`* give users who are on a host running an IRC server a message asking them to please join IRC::

----
/summon  <user> [<target> [<channel>]]

   user: username
 target: server name
channel: channel name
----

[[command_irc_time]]
[command]*`time`* query local time from server::

----
/time  [<target>]

target: query time from specified server
----

[[command_irc_topic]]
[command]*`topic`* get/set channel topic::

----
/topic  [<channel>] [<topic>|-delete]

channel: channel name
  topic: new topic
-delete: delete channel topic
----

[[command_irc_trace]]
[command]*`trace`* find the route to specific server::

----
/trace  [<target>]

target: server name
----

[[command_irc_unban]]
[command]*`unban`* unban nicks or hosts::

----
/unban  [<channel>] <nick> [<nick>...]

channel: channel name
   nick: nick or host
----

[[command_irc_unquiet]]
[command]*`unquiet`* unquiet nicks or hosts::

----
/unquiet  [<channel>] <nick> [<nick>...]

channel: channel name
   nick: nick or host
----

[[command_irc_userhost]]
[command]*`userhost`* return a list of information about nicks::

----
/userhost  <nick> [<nick>...]

nick: nick
----

[[command_irc_users]]
[command]*`users`* list of users logged into the server::

----
/users  [<target>]

target: server name
----

[[command_irc_version]]
[command]*`version`* give the version info of nick or server (current or specified)::

----
/version  [<server>|<nick>]

server: server name
  nick: nick
----

[[command_irc_voice]]
[command]*`voice`* give voice to nick(s)::

----
/voice  <nick> [<nick>...]

nick: nick or mask (wildcard "*" is allowed)
   *: give voice to everybody on channel
----

[[command_irc_wallchops]]
[command]*`wallchops`* send a notice to channel ops::

----
/wallchops  [<channel>] <text>

channel: channel name
   text: text to send
----

[[command_irc_wallops]]
[command]*`wallops`* send a message to all currently connected users who have set the 'w' user mode for themselves::

----
/wallops  <text>

text: text to send
----

[[command_irc_who]]
[command]*`who`* generate a query which returns a list of information::

----
/who  [<mask> [o]]

mask: only information which match this mask
   o: only operators are returned according to the mask supplied
----

[[command_irc_whois]]
[command]*`whois`* query information about user(s)::

----
/whois  [<server>] [<nick>[,<nick>...]]

server: server name
  nick: nick (may be a mask)

Without argument, this command will do a whois on:
- your own nick if buffer is a server/channel
- remote nick if buffer is a private.

If option irc.network.whois_double_nick is enabled, two nicks are sent (if only one nick is given), to get idle time in answer.
----

[[command_irc_whowas]]
[command]*`whowas`* ask for information about a nick which no longer exists::

----
/whowas  <nick>[,<nick>...] [<count> [<target>]]

  nick: nick
 count: number of replies to return (full search if negative number)
target: reply should match this mask
----

