{"id":13879221,"url":"https://github.com/palkan/acli","last_synced_at":"2025-05-07T22:27:03.881Z","repository":{"id":51233336,"uuid":"80866392","full_name":"palkan/acli","owner":"palkan","description":"Action Cable command-line client","archived":false,"fork":false,"pushed_at":"2024-01-02T01:33:53.000Z","size":102,"stargazers_count":230,"open_issues_count":3,"forks_count":2,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-03-31T14:57:44.795Z","etag":null,"topics":["actioncable","cli","mruby","rails","websockets"],"latest_commit_sha":null,"homepage":null,"language":"Ruby","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/palkan.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-02-03T20:25:30.000Z","updated_at":"2024-09-23T07:10:33.000Z","dependencies_parsed_at":"2024-10-20T12:06:01.023Z","dependency_job_id":null,"html_url":"https://github.com/palkan/acli","commit_stats":{"total_commits":70,"total_committers":1,"mean_commits":70.0,"dds":0.0,"last_synced_commit":"9d3575211d886235000e41ec85c42413a2598655"},"previous_names":[],"tags_count":8,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palkan%2Facli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palkan%2Facli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palkan%2Facli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/palkan%2Facli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/palkan","download_url":"https://codeload.github.com/palkan/acli/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252963801,"owners_count":21832573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["actioncable","cli","mruby","rails","websockets"],"created_at":"2024-08-06T08:02:14.022Z","updated_at":"2025-05-07T22:27:03.848Z","avatar_url":"https://github.com/palkan.png","language":"Ruby","funding_links":[],"categories":["Ruby"],"sub_categories":[],"readme":"![Build](https://github.com/palkan/acli/workflows/Build/badge.svg)\n\n# Action Cable CLI\n\nACLI is an Action Cable command-line interface written in [mRuby](http://mruby.org).\n\nIt's a standalone binary which can be used:\n\n- In development for playing with Action Cable channels (instead of struggling with browsers)\n\n- For monitoring and benchmarking.\n\n\u003ca href=\"https://evilmartians.com/\"\u003e\n\u003cimg src=\"https://evilmartians.com/badges/sponsored-by-evil-martians.svg\" alt=\"Sponsored by Evil Martians\" width=\"236\" height=\"54\"\u003e\u003c/a\u003e\n\n## Installation\n\nCurrently only MacOS (x86\\_64 and ARM) and Linux (x86\\_64) are supported.\n**PRs are welcomed** for other platforms support.\n\n### Precompiled binaries\n\nSee GitHub [releases](https://github.com/palkan/acli/releases). You can download the latest release by using cURL:\n\n```sh\ncurl -L https://github.com/palkan/acli/releases/latest/download/acli-`uname -s`-`uname -m` \u003e /usr/local/bin/acli\nchmod +x /usr/local/bin/acli\n```\n\nYou can also find edge (master) builds in [Actions](https://github.com/palkan/acli/actions).\n\n### Homebrew\n\nComing soon\n\n## Usage\n\nACLI is an interactive tool by design, i.e., it is asking you for input if necessary.\nJust run it without any arguments:\n\n```sh\n$ acli\n\nEnter URL:\n\n# After successful connection you receive a message:\nConnected to Action Cable at http://example.com/cable\n```\n\nThen you can run Action Cable commands:\n\n```sh\n# Subscribe to channel (without parameters)\n\\s channel_name\n\n# Subscribe to channel with params\n\n\\s+ channel_name id:1\n\n# or interactively\n\n\\s+\nEnter channel ID:\n...\n# Generate params object by providing keys and values one by one\nEnter key (or press ENTER to finish):\n...\nEnter value:\n# After successful subscription you receive a message\nSubscribed to channel_name\n\n\n# Performing actions\n\\p speak message:Hello!\n\n# or interactively (the same way as \\s+)\n\\p+\n\n\n# Retrieving the channel's history since the specified time\n\n# Relative, for example, 10 minutes ago (\"h\" and \"s\" modifiers are also supported)\n\\h since:10m\n\n# Absolute since the UTC time (seconds)\n\\h since:1650634535\n```\n\nYou can also provide URL and channel info using CLI options:\n\n```sh\nacli -u http://example.com/cable -c channel_name\n\n# or using full option names\nacli --url=http://example.com/cable --channel=channel_name\n\n# you can omit scheme and even path (/cable is used by default)\nacli -u example.com\n```\n\nTo pass channel params use `--channel-params` option:\n\n```sh\nacli -u http://example.com/cable -c ChatChannel --channel-params=id:1,name:\"Jack\"\n```\n\nYou can pass additional request headers:\n\n```sh\nacli -u example.com --headers=\"x-api-token:secret,cookie:username=john\"\n```\n\nOther commands:\n\n```sh\n# Print help\n\\?\n\n# Quit\n\\q\n```\n\nOther command-line options:\n\n```sh\n# Print usage\nacli -h\n\n# Print version\nacli -v\n\n# Quit after M incoming messages (excluding pings and system messages)\nacli -u http://example.com/cable -c channel_name --quit-after=M\n\n# Enabling PONG commands in response to PINGs\nacli -u http://example.com/cable --pong\n```\n\n## Development\n\nWe have Docker \u0026 [Dip](https://github.com/bibendi/dip) configuration for development:\n\n```sh\n# initial provision\ndip provision\n\n# run rake tasks\ndip rake test\n\n# or open a console within a container\ndip bash\n```\n\nYou can also build the project _locally_ (on MacOS or Linux): `rake compile` or `rake test`.\n\n### Requirements\n\n- [Ruby Next](https://github.com/ruby-next/ruby-next) (`gem install ruby-next`)\n\n- [libressl](https://www.libressl.org/) (`brew install libressl`)\n\n- [wslay](https://github.com/tatsuhiro-t/wslay) (`brew install libressl`)\n\n- [childprocess](https://github.com/enkessler/childprocess) gem for testing (`gem install childprocess`)\n\n## Contributing\n\nBug reports and pull requests are welcome on [GitHub](https://github.com/palkan/acli).\n\n## License\n\nThe gem is available as open-source under the terms of the [MIT License](http://opensource.org/licenses/MIT).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalkan%2Facli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpalkan%2Facli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpalkan%2Facli/lists"}