{"id":19977424,"url":"https://github.com/hypernym-studio/args","last_synced_at":"2026-02-25T09:31:33.983Z","repository":{"id":196635011,"uuid":"695943377","full_name":"hypernym-studio/args","owner":"hypernym-studio","description":"A fast and ultra lightweight CLI argument parser.","archived":false,"fork":false,"pushed_at":"2025-02-25T13:32:32.000Z","size":144,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-08T02:44:42.912Z","etag":null,"topics":["alias","args","arguments","argv","cli","commands","esm","flags","node","parser","process"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/hypernym-studio.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":".github/codeowners","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":"ivodolenc","custom":["https://revolut.me/ivodolenc","https://paypal.me/ivodolenc"]}},"created_at":"2023-09-24T17:20:11.000Z","updated_at":"2025-02-25T13:32:13.000Z","dependencies_parsed_at":null,"dependency_job_id":"96ea7c54-b3fc-4ec3-ad56-67a59a901308","html_url":"https://github.com/hypernym-studio/args","commit_stats":null,"previous_names":["hypernym-studio/args"],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernym-studio%2Fargs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernym-studio%2Fargs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernym-studio%2Fargs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/hypernym-studio%2Fargs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/hypernym-studio","download_url":"https://codeload.github.com/hypernym-studio/args/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252283561,"owners_count":21723496,"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":["alias","args","arguments","argv","cli","commands","esm","flags","node","parser","process"],"created_at":"2024-11-13T03:28:00.714Z","updated_at":"2026-02-25T09:31:33.962Z","avatar_url":"https://github.com/hypernym-studio.png","language":"TypeScript","readme":"\u003ch1 align=\"center\"\u003e@hypernym/args\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003eA fast and ultra lightweight CLI argument parser.\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/hypernym-studio/args\"\u003eRepository\u003c/a\u003e\n  \u003cspan\u003e✦\u003c/span\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@hypernym/args\"\u003ePackage\u003c/a\u003e\n  \u003cspan\u003e✦\u003c/span\u003e\n  \u003ca href=\"https://github.com/hypernym-studio/args/releases\"\u003eReleases\u003c/a\u003e\n  \u003cspan\u003e✦\u003c/span\u003e\n  \u003ca href=\"https://github.com/hypernym-studio/args/discussions\"\u003eDiscussions\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cbr\u003e\n\n\u003cpre align=\"center\"\u003epnpm add @hypernym/args\u003c/pre\u003e\n\n\u003cbr\u003e\n\n## Features\n\n- TypeScript friendly\n- Fully tree-shakeable\n- No dependencies\n\n## Parser\n\n### Arguments\n\nUnprefixed inputs are stored in an array.\n\n```sh\n$ arg\n\n# =\u003e { _: ['arg'] }\n```\n\n```sh\n$ arg-a arg-b arg-c\n\n# =\u003e { _: ['arg-a', 'arg-b', 'arg-c'] }\n```\n\n### Flags\n\nInputs with `--` prefix are parsed as _flags_.\n\nBy default, standalone flags with no value are defined as `true`.\n\n```sh\n$ --flag\n\n# =\u003e { _: [], flag: true, }\n```\n\n```sh\n$ --flag value\n\n# =\u003e { _: [], flag: 'value', }\n```\n\n```sh\n$ --flag=value\n\n# =\u003e { _: [], flag: 'value', }\n```\n\n### Aliases\n\nInputs with `-` prefix are parsed as _aliases_.\n\nBy default, standalone aliases with no value are defined as `true`.\n\n```sh\n$ -alias\n\n# =\u003e { _: [], alias: true, }\n```\n\n```sh\n$ -alias value\n\n# =\u003e { _: [], alias: 'value', }\n```\n\n```sh\n$ -alias=value\n\n# =\u003e { _: [], alias: 'value', }\n```\n\n### Ignores\n\n- Ignores standalone inputs `--` and `-`\n- Ignores argument inputs that include `=`\n\n```sh\n$ arg=value -- arg-b=value -\n\n# =\u003e { _: [] }\n```\n\n## Usage\n\n```sh\n$ hello world --foo bar -baz -cli demo --fuz\n```\n\n```ts\nimport { createArgs } from '@hypernym/args'\n\ninterface Args {\n  foo?: string\n  baz?: boolean\n  cli?: string\n  fuz?: boolean\n}\n\nconst args = createArgs\u003cArgs\u003e()\n\nconsole.log(args)\n\n/*\n{\n  _: ['hello', 'world'],\n  foo: 'bar',\n  baz: true,\n  cli: 'demo',\n  fuz: true\n}\n*/\n```\n\n## Options\n\n### argv\n\nSpecifies an array of values to parse as arguments.\n\n- Type: `string[] | undefined`\n- Default: `process.argv.slice(2)`\n\n```ts\nimport { createArgs } from '@hypernym/args'\n\ncreateArgs({\n  argv: process.argv.slice(2),\n})\n```\n\n### alias\n\nSpecifies an object of `alias` that will be added to the parsed output with matching values.\n\n- Type: `Record\u003cstring, string | string[]\u003e | undefined`\n- Default: `undefined`\n\n```ts\nimport { createArgs } from '@hypernym/args'\n\ncreateArgs({\n  alias: {\n    config: ['conf', 'c'],\n    help: 'h',\n  },\n})\n```\n\n### defaults\n\nSpecifies an object of `defaults` that will be added to the parsed output regardless of `CLI` inputs.\n\n- Type: `(Record\u003cstring, unknown\u003e \u0026 { _?: string[] }) | undefined`\n- Default: `undefined`\n\n```ts\nimport { createArgs } from '@hypernym/args'\n\ncreateArgs({\n  defaults: {\n    _: ['value'],\n    a: true,\n  },\n})\n```\n\n### exclude\n\nSpecifies an array of values that will be skipped when parsing arguments.\n\n- Type: `string[] | undefined`\n- Default: `undefined`\n\n```ts\nimport { createArgs } from '@hypernym/args'\n\ncreateArgs({\n  exclude: ['arg', '--flag', '-alias'],\n})\n```\n\n## License\n\nDeveloped in 🇭🇷 Croatia, © Hypernym Studio.\n\nReleased under the [MIT](LICENSE.txt) license.\n","funding_links":["https://github.com/sponsors/ivodolenc","https://revolut.me/ivodolenc","https://paypal.me/ivodolenc"],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypernym-studio%2Fargs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fhypernym-studio%2Fargs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fhypernym-studio%2Fargs/lists"}