{"id":49568105,"url":"https://github.com/dawsbot/nr","last_synced_at":"2026-05-03T12:40:08.874Z","repository":{"id":334841236,"uuid":"1142920274","full_name":"dawsbot/nr","owner":"dawsbot","description":"The fastest \"npm run\" possible","archived":false,"fork":false,"pushed_at":"2026-01-29T19:24:32.000Z","size":35,"stargazers_count":30,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T12:40:05.185Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/dawsbot.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"dawsbot","custom":"https://blockscan.com/address/0xc0deaf6bd3f0c6574a6a625ef2f22f62a5150eab"}},"created_at":"2026-01-27T01:57:58.000Z","updated_at":"2026-03-28T20:00:47.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dawsbot/nr","commit_stats":null,"previous_names":["dawsbot/nr"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/dawsbot/nr","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawsbot%2Fnr","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawsbot%2Fnr/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawsbot%2Fnr/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawsbot%2Fnr/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dawsbot","download_url":"https://codeload.github.com/dawsbot/nr/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dawsbot%2Fnr/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32569714,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-03T06:36:36.687Z","status":"ssl_error","status_checked_at":"2026-05-03T06:36:09.306Z","response_time":103,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"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":[],"created_at":"2026-05-03T12:40:08.133Z","updated_at":"2026-05-03T12:40:08.853Z","avatar_url":"https://github.com/dawsbot.png","language":"JavaScript","funding_links":["https://github.com/sponsors/dawsbot","https://blockscan.com/address/0xc0deaf6bd3f0c6574a6a625ef2f22f62a5150eab"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"logo.svg\" alt=\"nr logo\" width=\"200\"\u003e\n\u003c/p\u003e\n\n# nr\n\nRun npm scripts. \u003c!-- FASTEST_SPEEDUP_START --\u003e28\u003c!-- FASTEST_SPEEDUP_END --\u003ex faster.\n\nA zero-overhead npm script runner written in Rust. No Node.js startup, no npm overhead—just your script.\n\n## Benchmarks\n\n\u003c!-- BENCHMARK_START --\u003e\n| Runner | Time | Speedup | Size |\n|--------|------|---------|------|\n| nr | 10ms | **27.8x** | 377KB |\n| bun | 12ms | 23.2x | 55MB |\n| node --run | 24ms | 11.6x | N/A |\n| npm | 139ms | 2.0x | 18MB |\n| yarn | 170ms | 1.6x | 5MB |\n| pnpm | 278ms | 1.0x | 19MB |\n\n*Measured running `echo test` on macOS 26.2 (Apple Silicon). Your mileage may vary.*\n\u003c!-- BENCHMARK_END --\u003e\n\n## Install\n\n```bash\ncurl -fsSL https://raw.githubusercontent.com/dawsbot/nr/main/install.sh | sh\n```\n\nWorks on macOS, Linux, and Windows (via Git Bash/WSL).\n\n## Usage\n\n```bash\n# List available scripts\nnr\n\n# Run a script\nnr build\n\n# Pass arguments to the script\nnr test -- --watch\n```\n\n## AI Assistant Setup\n\nMake your AI coding assistant use `nr` instead of `npm run` by adding this instruction to its config:\n\n```\nUse `nr` instead of `npm run` for running package.json scripts. It's a faster drop-in replacement.\n```\n\n### Claude Code\n\nAdd to `~/.claude/CLAUDE.md` (global) or `CLAUDE.md` in your project root:\n\n```markdown\nUse `nr` instead of `npm run` for running package.json scripts.\n```\n\n### Cursor\n\nAdd to `.cursorrules` in your project root:\n\n```\nUse `nr` instead of `npm run` for running package.json scripts.\n```\n\n### GitHub Copilot\n\nAdd to `.github/copilot-instructions.md` in your repo:\n\n```markdown\nUse `nr` instead of `npm run` for running package.json scripts.\n```\n\n### Windsurf\n\nAdd to `.windsurfrules` in your project root:\n\n```\nUse `nr` instead of `npm run` for running package.json scripts.\n```\n\n### Zed\n\nAdd to `.zed/settings.json` in your project:\n\n```json\n{\n  \"assistant\": {\n    \"instructions\": \"Use `nr` instead of `npm run` for running package.json scripts.\"\n  }\n}\n```\n\n## Why is it faster?\n\n**No Node.js startup.** npm, yarn, and pnpm all bootstrap Node.js before doing anything. That's 50-100ms before your script even starts. `nr` is a native binary—it starts instantly.\n\n**Direct exec.** On Unix systems, `nr` uses the `exec()` syscall to replace itself with your command. No fork, no wait, no overhead. Your script runs in the same process slot.\n\n**Minimal parsing.** We only read the `scripts` field from package.json. Not dependencies, not lockfiles, not node_modules. Just scripts.\n\n**Tiny binary.** 377KB. No runtime, no GC, no framework. Just machine code.\n\n## What it doesn't do\n\n`nr` is intentionally minimal:\n\n- No `pre`/`post` lifecycle scripts (use `nr pretest \u0026\u0026 nr test` if needed)\n- No workspaces support\n\nIf you need these features, use npm. If you want speed, use `nr`.\n\n## Build from source\n\n```bash\ngit clone https://github.com/dawsbot/nr\ncd nr\ncargo build --release\ncp target/release/nr /usr/local/bin/\n```\n\n## Status\n\nExperimental. Works on my machine. Report issues at [GitHub](https://github.com/dawsbot/nr/issues).\n\n## License\n\nMIT\n\n\u003c!--\n## Release\n\n```bash\ngit add .\ngit commit -m \"Initial release\"\ngit tag v0.1.0\ngit push origin main --tags\n```\n--\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawsbot%2Fnr","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdawsbot%2Fnr","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdawsbot%2Fnr/lists"}