{"id":27127849,"url":"https://github.com/jacob-shuman/unscript","last_synced_at":"2026-05-09T02:03:16.746Z","repository":{"id":57689891,"uuid":"488351548","full_name":"jacob-shuman/unscript","owner":"jacob-shuman","description":"Run npm scripts using automatically shortened script names","archived":false,"fork":false,"pushed_at":"2022-06-07T22:22:30.000Z","size":65,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-13T15:46:55.785Z","etag":null,"topics":["alias","cli","npm","run","script","shorthand","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/unscript","language":"JavaScript","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/jacob-shuman.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null},"funding":{"github":["jacob-shuman"],"patreon":null,"open_collective":null,"ko_fi":"jacobshuman","tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"lfx_crowdfunding":null,"custom":null}},"created_at":"2022-05-03T20:20:11.000Z","updated_at":"2023-03-17T13:00:11.000Z","dependencies_parsed_at":"2022-09-26T20:53:51.376Z","dependency_job_id":null,"html_url":"https://github.com/jacob-shuman/unscript","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-shuman%2Funscript","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-shuman%2Funscript/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-shuman%2Funscript/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jacob-shuman%2Funscript/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jacob-shuman","download_url":"https://codeload.github.com/jacob-shuman/unscript/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247704499,"owners_count":20982293,"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","cli","npm","run","script","shorthand","typescript"],"created_at":"2025-04-07T17:58:05.202Z","updated_at":"2026-05-09T02:03:11.714Z","avatar_url":"https://github.com/jacob-shuman.png","language":"JavaScript","funding_links":["https://github.com/sponsors/jacob-shuman","https://ko-fi.com/jacobshuman"],"categories":[],"sub_categories":[],"readme":"```\n▄• ▄▌   ▐ ▄   .▄▄ ·    ▄▄·   ▄▄▄    ▪     ▄▄▄·  ▄▄▄▄▄▄\n█▪██▌  •█▌▐█  ▐█ ▀.   ▐█ ▌▪  ▀▄ █·  ██   ▐█ ▄█  ▀•██ ▀\n█▌▐█▌  ▐█▐▐▌  ▄▀▀▀█▄  ██ ▄▄  ▐▀▀▄   ▐█·   ██▀·    ▐█.▪\n▐█▄█▌  ██▐█▌  ▐█▄▪▐█  ▐███▌  ▐█•█▌  ▐█▌  ▐█▪·•    ▐█▌·\n ▀▀▀   ▀▀ █▪   ▀▀▀▀   ·▀▀▀   .▀  ▀  ▀▀▀  .▀       ▀▀▀\n```\n\n\n![example usage](examples/full.svg)\n\n\n[![NPM Version](https://img.shields.io/npm/v/unscript?style=flat)]()\n[![MIT License](https://img.shields.io/apm/l/atomic-design-ui.svg?)](https://github.com/tterb/atomic-design-ui/blob/master/LICENSEs)\n\n\n\u003ca href=\"https://www.producthunt.com/posts/unscript?utm_source=badge-featured\u0026utm_medium=badge\u0026utm_souce=badge-unscript\" target=\"_blank\"\u003e\u003cimg src=\"https://api.producthunt.com/widgets/embed-image/v1/featured.svg?post_id=348724\u0026theme=light\" alt=\"Unscript - Run\u0026#0032;npm\u0026#0032;scripts\u0026#0032;using\u0026#0032;automatically\u0026#0032;shortened\u0026#0032;script\u0026#0032;names | Product Hunt\" style=\"width: 200px;\" width=\"250\" height=\"54\" /\u003e\u003c/a\u003e\n\n_**Run npm scripts using automatically shortened script names**_\n\n```bash\nunscript [options] [query]\n```\n\n## What is unscript?\n\nUnscript lets you query and run npm scripts from a list of shorthands. These shorthands are generated from the names of the scripts in your `package.json`. Unscript creates shorthands by combining the first letter of each word separated by a delimiter (`:` by default).\n\nFor example:\n\n- `dev` would be shortened to `d`.\n- `build:dev` would be shortened to `bd`.\n- `lint:watch:dev` would be shortened to `lwd`.\n\nIf there are at least 2 identical shorthands then a prompt will appear to ask which of the results should be run.\n\nFor example:\n\n- `build:dev` would be shortened to `bd`.\n- `build:deploy` would also be shortened to `bd`.\n\nIf no query is passed then a list of all scripts in the `package.json` will be displayed.\n\n## Why was this made?\n\nThere are many existing tools on npm that can run javascript files easily as a drop-in replacement for package.json scripts. Although these are helpful utilities I found that I wanted to create many small package.json scripts that I wouldn't need a full javascript file for. Unscript was created out of my own personal desire to quick run npm scripts using automatically generated shortened names.\n\n## Options\n\n| option              | default | description                                   |\n| ------------------- | ------- | --------------------------------------------- |\n| `-p`, `--path`      | `\".\"`   | Path to folder containing package.json.       |\n| `-d`, `--delimiter` | `\":\"`   | Character to separate words by.               |\n| `-a`, `--auto`      | `false` | Run the selected script without confirmation. |\n| `-s`, `--scripts`   | `false` | Display scripts in found package.json.        |\n\n## Installation\n\nUnscript can be used by installing it globally\n\n```bash\nnpm i -g unscript\n```\n\nor by using using npx:\n\n```bash\nnpx unscript lw\n```\n\nto save time writing that out it is recommended to alias the command to a shorter name:\n\n```bash\n# .bashrc .zshrc ...etc\nalias un='npx unscript'\n```\n\n## Usage\n\n### Basic usage\n\nIn this case the `dev` script is run because `dev` is the only script that was automatically shortened to `d`.\n\n```\nunscript d\n```\n\n![basic shorthand example usage](examples/shorthand.svg)\n\n### Handling multiple scripts with the same generated shorthands\n\nWhen multiple scripts have the same generated shorthand then a prompt will appear to ask which of the results should be run.\n\n![name collision example](examples/name-collision.svg)\n\n### Run the selected script without prompting\n\nUsing the `-a` (auto) option will run the selected script without prompting for confirmation if there is only one script matching the shorthand query.\n\n![auto option example](examples/auto-option.svg)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacob-shuman%2Funscript","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjacob-shuman%2Funscript","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjacob-shuman%2Funscript/lists"}