{"id":29606662,"url":"https://github.com/thecodeah/quicli","last_synced_at":"2025-07-20T17:06:21.183Z","repository":{"id":38296530,"uuid":"347114302","full_name":"thecodeah/quicli","owner":"thecodeah","description":"Create CLI's quickly without any external files!","archived":false,"fork":false,"pushed_at":"2022-08-07T13:46:30.000Z","size":454,"stargazers_count":26,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-07-05T07:01:51.688Z","etag":null,"topics":["cli","dev-tool","lightweight","nodejs"],"latest_commit_sha":null,"homepage":"https://quicli.js.org","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"unlicense","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/thecodeah.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-03-12T15:37:01.000Z","updated_at":"2024-06-06T23:28:57.000Z","dependencies_parsed_at":"2022-08-09T03:00:22.283Z","dependency_job_id":null,"html_url":"https://github.com/thecodeah/quicli","commit_stats":null,"previous_names":[],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/thecodeah/quicli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeah%2Fquicli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeah%2Fquicli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeah%2Fquicli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeah%2Fquicli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/thecodeah","download_url":"https://codeload.github.com/thecodeah/quicli/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/thecodeah%2Fquicli/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":266161904,"owners_count":23885928,"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","dev-tool","lightweight","nodejs"],"created_at":"2025-07-20T17:06:13.534Z","updated_at":"2025-07-20T17:06:21.151Z","avatar_url":"https://github.com/thecodeah.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"![Logo](https://user-images.githubusercontent.com/21268739/112211973-bb0b8780-8c1c-11eb-8b5b-7d3db878cff2.png)\r\n\r\n## Why QuiCLI?\r\nQuiCLI is a lightweight CLI framework that was intentionally designed to be used without a package manager or any external files. The built code has no dependencies and is entirely minified into a single line. Paste it on top of a new `.js` file and you're ready to go! No `package.json`, no `node_modules` and your colleagues don't have to install any global packages making it a great cross-platform alternative to shell scripts in development environments.\r\n\r\nWhen creating CLI's with QuiCLI, the goal of the program should be to assist development. It's not meant to be used to create CLI's that will eventually be provided to end-users. There are better, and more feature-rich CLI frameworks that can help you achieve that goal.\r\n\r\n## Getting started\r\n\r\n1. Simply copy and paste the contents of the `lib/quicli.min.js` file in this repository to a new `.js` file.\r\n2. On a new line below the pasted contents, add some commands (Check the examples below).\r\n3. Run your CLI with `node myapp mycommand`.\r\n\r\n## Features\r\n### Nested commands\r\n```js\r\ncli.addCommand(\"foo.bar\", (flags) =\u003e {\r\n    cli.log(\"Hello world!\");\r\n})\r\n```\r\n```\r\n\u003e node myapp foo bar\r\nHello world!\r\n```\r\n### Typed flags\r\n```js\r\ncli.addCommand(\"foo\", (flags) =\u003e {\r\n    cli.log(flags.bar[0], \"is a nice number!\");\r\n})\r\n.addFlag(\"bar\", \"number\", true) // Name, Type, Required\r\n```\r\n```\r\n\u003e node myapp foo\r\nMissing flag: bar\r\n\u003e node myapp foo --bar hello\r\nIncorrect type: bar must be a number!\r\n\u003e node myapp foo --bar 24\r\n24 is a nice number!\r\n```\r\n### Input handling\r\n```js\r\ncli.addCommand(\"foo\", async (flags) =\u003e {\r\n    const answer = await cli.question(\"What's up?\");\r\n    cli.log(\"Your answer: \" + answer);\r\n})\r\n```\r\n```\r\n\u003e node myapp foo\r\nWhat's up? Nothing much...\r\nYour answer: Nothing much...\r\n```\r\n### Styled output\r\n```js\r\ncli.addCommand(\"ping\", (flags) =\u003e {\r\n    cli.log(\r\n        $.BOLD +\r\n        $.RED + \"P\" +\r\n        $.YELLOW + \"O\" +\r\n        $.GREEN + \"N\" +\r\n        $.BLUE + \"G\" +\r\n        $.MAGENTA + \"!\"\r\n    );\r\n})\r\n```\r\n\r\n## Documentation\r\n\r\nDocumentation can be found on [the projects website](http://quicli.js.org).\r\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodeah%2Fquicli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthecodeah%2Fquicli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthecodeah%2Fquicli/lists"}