{"id":18508070,"url":"https://github.com/imqueue/cli","last_synced_at":"2025-06-13T12:38:02.034Z","repository":{"id":31892830,"uuid":"130691527","full_name":"imqueue/cli","owner":"imqueue","description":"Command Line Interface for @imqueue","archived":false,"fork":false,"pushed_at":"2024-10-30T15:32:12.000Z","size":1501,"stargazers_count":20,"open_issues_count":5,"forks_count":0,"subscribers_count":4,"default_branch":"master","last_synced_at":"2025-05-10T21:02:29.971Z","etag":null,"topics":["cli","message-queue","rad","redis-queue","rpc","rpc-client","rpc-over-message-queue","rpc-service"],"latest_commit_sha":null,"homepage":"https://imqueue.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"isc","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/imqueue.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2018-04-23T12:14:35.000Z","updated_at":"2024-10-30T15:32:41.000Z","dependencies_parsed_at":"2023-01-14T20:02:28.825Z","dependency_job_id":"9cae6aaa-adda-446b-ba6d-efdf9ec2f89b","html_url":"https://github.com/imqueue/cli","commit_stats":{"total_commits":261,"total_committers":3,"mean_commits":87.0,"dds":"0.011494252873563204","last_synced_commit":"d6a1a653f35801d7664c2984fe68e0a4d025c5fe"},"previous_names":[],"tags_count":94,"template":false,"template_full_name":null,"purl":"pkg:github/imqueue/cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fcli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fcli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fcli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fcli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/imqueue","download_url":"https://codeload.github.com/imqueue/cli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/imqueue%2Fcli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":259645854,"owners_count":22889693,"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":["cli","message-queue","rad","redis-queue","rpc","rpc-client","rpc-over-message-queue","rpc-service"],"created_at":"2024-11-06T15:13:15.863Z","updated_at":"2025-06-13T12:38:02.014Z","avatar_url":"https://github.com/imqueue.png","language":"TypeScript","readme":"# I Message Queue CLI (@imqueue/cli)\n\n[![Build Status](https://travis-ci.com/imqueue/cli.svg?branch=master)](https://travis-ci.com/imqueue/cli)\n[![codebeat badge](https://codebeat.co/badges/0824c9af-d6fa-47ac-bc44-eb51d7b37eba)](https://codebeat.co/projects/github-com-imqueue-cli-master)\n[![Coverage Status](https://coveralls.io/repos/github/imqueue/cli/badge.svg?branch=master)](https://coveralls.io/github/imqueue/cli?branch=master)\n[![David](https://img.shields.io/david/imqueue/cli.svg)](https://david-dm.org/imqueue/cli)\n[![David](https://img.shields.io/david/dev/imqueue/cli.svg)](https://david-dm.org/imqueue/cli?type=dev)\n[![Known Vulnerabilities](https://snyk.io/test/github/imqueue/cli/badge.svg?targetFile=package.json)](https://snyk.io/test/github/imqueue/cli?targetFile=package.json)\n[![License](https://img.shields.io/badge/license-ISC-blue.svg)](https://rawgit.com/imqueue/cli/master/LICENSE)\n\n## Why?\n\nFrees you from writing boilerplate when making @imqueue services.\n\n## Install\n\nAs simple as:\n\n~~~bash\nnpm i -g @imqueue/cli\n~~~\n\n## Usage\n\nTo start simply run after install:\n\n~~~bash\nimq\n~~~\n\nIMQ-CLI first of all provides a way to manage your IMQ-RPC based services and \nclients based on desired configuration.\n\n~~~\nIMQ Command Line Interface\nVersion: 1.0.0-dev2\n\nUsage: imq \u003ccommand\u003e\n\nCommands:\n  imq client       Manage IMQ client\n  imq completions  Generates completions script for your shell\n  imq config       Manage IMQ CLI settings\n  imq service      Manage IMQ service\n\nOptions:\n  --version  Show version number                                       [boolean]\n  --help     Show help                                                 [boolean]\n~~~\n\n### Service Management\n\nThe main essence of this command-line tool is to provide simple way of\ncreating services based on boilerplate templates.\n\nCurrently it supports a single template `default`, which provides a way to\ncreate a service, targeted to be developed under GitHub version control\nsystem, integrated with TravisCI and docker builds. By simply running a single\ncommand it will create a ready-to-run service and all you will need is to\nwrite it's implementation.\n\nIt is recommended to run `imq config init` right after installation of this\ncommand-line tool and before running `imq service create` commands.\n\n~~~\nimq service create [name] [path]\n\nCreates new service package with the given service name under given path.\n\nOptions:\n  --version               Show version number                          [boolean]\n  --help                  Show help                                    [boolean]\n  -a, --author            Service author full name (person or organization)\n  -e, --email             Service author's contact email\n  -g, --use-git           Turns on automatic git repo creation         [boolean]\n  -u, --github-namespace  GitHub namespace (usually user name or organization\n                          name)\n  --no-install            Do not install npm packages automatically on service\n                          creation                                     [boolean]\n  -V, --service-version   Initial service version             [default: \"1.0.0\"]\n  -H, --homepage          Homepage URL for service, if required\n  -B, --bugs-url          Bugs url for service, if required\n  -l, --license           License for created service, should be either license\n                          name in SPDX format or path to a custom license file\n  -t, --template          Template used to create service (should be either\n                          template name, git url or file system directory)\n  -d, --description       Service description\n  -n, --node-versions     Node version tags to use for builds, separated by\n                          comma if multiple. First one will be used for docker\n                          build, if dockerize option enabled.\n  -D, --dockerize         Enable service dockerization with CI builds  [boolean]\n  -L, --node-docker-tag   Node docker tag to use as base docker image for docker\n                          builds\n  -N, --docker-namespace  Docker hub namespace\n  -T, --github-token      GitHub auth token\n  -p, --private           Service repository will be private at GitHub [boolean]\n  --name                  Service name to create with\n  --path                  Path to directory where service will be generated to\n~~~\n\n### Client Management\n\n**Generating Clients:**\n\nTo generate a client related service should be started, otherwise generation \nwill fail.\n\nThis command will expect service name as mandatory option.\n\nUsage:\n\n~~~\nimq client generate \u003cname\u003e [path]\n\nGenerates IMQ-RPC client for a specified service\n\nOptions:\n  --version        Show version number                                 [boolean]\n  --help           Show help                                           [boolean]\n  -o, --overwrite  Overwrite existing client without prompt            [boolean]\n  --path           Directory where client file should be placed   [default: \".\"]\n~~~\n\n### Managing IMQ-CLI Configuration\n\nIMQ-CLI can be used with a pre-configured options to shorten commands usage.\nGlobal base configurations options usually stored in `~/.imq/config.json` file.\nThis file can be managed manually, but it is recommended to use special\ncommand:\n\n~~~bash\nimq config init\n~~~\n\nwhich will guide you through configuration process.\n\nThere are also useful commands to retrieve and set specific configuration\nvalues, stored in a configuration file:\n\n~~~bash\nimq config get\n~~~\nwill print all upset configuration options in `option = value` format.\n\n~~~bash\nimq config get [option_name]\n~~~\nwill print a single requested option value.\n\n~~~bash\nimq config set [option_name] [new_value]\n~~~\nwill set requested option to a given new value.\n\n\n### IMQ-CLI Completions For Your Shell\n\nIMQ-CLI supports completions for your shell. It provide a way to generate \ncompletions script and add it to your shell configuration, as far as\nallows to remove previously added completion script just running the \ncorresponding commands:\n\n~~~bash\nimq completions on\nimq completions off\n~~~\n\nCurrently it supports both `zsh` and `bash` shells.\n\n## Controlling Local Services\n\nFor comfortable local development @imqueue provides couple of useful \ncommand-line tools, allowing developers to manage local set of services.\nLike starting/stopping/restarting them with a single command line or managing\nservices logs.\n\nPlease, note, there are many different ways to manage local services.\nYou may consider pulling and starting pre-build docker images, or even\nuse docker compose for managing them, or may utilize such tools as\nvagrant to organize local environment setup. BTW, you may suggest to \nrun your services locally on host OS, which is really useful scenario\nduring development and the tools below will dramatically improve your\nexperience, especially, when the number of services to manage significant.\n\n### imqctl\n\n~~~\nUsage: imqctl \u003ccommand\u003e [-p path] [-s services] [-hu]\n  \u003ccommand\u003e is one of start|stop|restart\n  [-p path] - path to a directory with services repositories, by default is \n              current directory\n  [-s services] - comma-separated services list (repositories names),\n                  if not passed will scan path for a services presence\n  [-u] - if passed service will be updated using 'git pull' before start\n  [-c] - calm down services start - wait before staring next\n  [-v] - verbose mode, shows command execution time\n  [-h] - print this usage information\n~~~\n\n### imqlog\n\n~~~\nUsage: ./bin/log.sh [-c] [service1, ...serviceN]\n  [service1, ...serviceN] - list of service repositories directories names to \n                            combile logs for, if omitted all existing logs are\n                            combined.\n  [-c] - clean previous logs\n  [-h] - print this usage information\n~~~\n\n## License\n\n[ISC](https://github.com/imqueue/cli/blob/master/LICENSE)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimqueue%2Fcli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fimqueue%2Fcli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fimqueue%2Fcli/lists"}