Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time


Action Cable CLI

ACLI is an Action Cable command-line interface written in mRuby.

It's a standalone binary which can be used:

  • In development for playing with Action Cable channels (instead of struggling with browsers)

  • For monitoring and benchmarking.

Sponsored by Evil Martians


Currently only MacOS (x86_64 and ARM) and Linux (x86_64) are supported. PRs are welcomed for other platforms support.

Precompiled binaries

See GitHub releases. You can download the latest release by using cURL:

curl -L`uname -s`-`uname -m` > /usr/local/bin/acli
chmod +x /usr/local/bin/acli

You can also find edge (master) builds in Actions.


Coming soon


ACLI is an interactive tool by design, i.e., it is asking you for input if necessary. Just run it without any arguments:

$ acli

Enter URL:

# After successful connection you receive a message:
Connected to Action Cable at

Then you can run Action Cable commands:

# Subscribe to channel (without parameters)
\s channel_name

# Subscribe to channel with params

\s+ channel_name id:1

# or interactively

Enter channel ID:
# Generate params object by providing keys and values one by one
Enter key (or press ENTER to finish):
Enter value:
# After successful subscription you receive a message
Subscribed to channel_name

# Performing actions
\p speak message:Hello!

# or interactively (the same way as \s+)

# Retrieving the channel's history since the specified time

# Relative, for example, 10 minutes ago ("h" and "s" modifiers are also supported)
\h since:10m

# Absolute since the UTC time (seconds)
\h since:1650634535

You can also provide URL and channel info using CLI options:

acli -u -c channel_name

# or using full option names
acli --url= --channel=channel_name

# you can omit scheme and even path (/cable is used by default)
acli -u

To pass channel params use --channel-params option:

acli -u -c ChatChannel --channel-params=id:1,name:"Jack"

You can pass additional request headers:

acli -u --headers="x-api-token:secret,cookie:username=john"

Other commands:

# Print help

# Quit

Other command-line options:

# Print usage
acli -h

# Print version
acli -v

# Quit after M incoming messages (excluding pings and system messages)
acli -u -c channel_name --quit-after=M


We have Docker & Dip configuration for development:

# initial provision
dip provision

# run rake tasks
dip rake test

# or open a console within a container
dip bash

You can also build the project locally (on MacOS or Linux): rake compile or rake test.



Bug reports and pull requests are welcome on GitHub.


The gem is available as open-source under the terms of the MIT License.