{"id":13541362,"url":"https://github.com/nur-taskrunner/nur","last_synced_at":"2026-03-01T11:20:59.344Z","repository":{"id":223120478,"uuid":"759367756","full_name":"nur-taskrunner/nur","owner":"nur-taskrunner","description":"nur - a taskrunner based on nu shell","archived":false,"fork":false,"pushed_at":"2026-02-22T10:30:52.000Z","size":1549,"stargazers_count":80,"open_issues_count":5,"forks_count":6,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-02-22T16:35:44.247Z","etag":null,"topics":["development","development-tools","nu","nushell","rust","task-runner","tasks"],"latest_commit_sha":null,"homepage":"https://nur-taskrunner.github.io/docs/","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/nur-taskrunner.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","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,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"ddanier"}},"created_at":"2024-02-18T11:59:01.000Z","updated_at":"2026-02-22T10:30:55.000Z","dependencies_parsed_at":"2024-03-23T17:47:52.187Z","dependency_job_id":"c48f0bb7-c82e-4aaf-9b8e-c35566602e27","html_url":"https://github.com/nur-taskrunner/nur","commit_stats":null,"previous_names":["ddanier/nur","nur-taskrunner/nur"],"tags_count":60,"template":false,"template_full_name":null,"purl":"pkg:github/nur-taskrunner/nur","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nur-taskrunner%2Fnur","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nur-taskrunner%2Fnur/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nur-taskrunner%2Fnur/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nur-taskrunner%2Fnur/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/nur-taskrunner","download_url":"https://codeload.github.com/nur-taskrunner/nur/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/nur-taskrunner%2Fnur/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29968123,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-01T10:55:55.490Z","status":"ssl_error","status_checked_at":"2026-03-01T10:55:55.175Z","response_time":124,"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":["development","development-tools","nu","nushell","rust","task-runner","tasks"],"created_at":"2024-08-01T10:00:45.068Z","updated_at":"2026-03-01T11:20:59.336Z","avatar_url":"https://github.com/nur-taskrunner.png","language":"Rust","readme":"# nur - a taskrunner based on `nu` shell\n\n`nur` is a simple, yet very powerful task runner. It borrows ideas from [`b5`](https://github.com/team23/b5)\nand [`just`](https://github.com/casey/just), but uses [`nu` shell scripting](https://www.nushell.sh/book/programming_in_nu.md)\nto define the tasks. This allows for well-structured tasks while being able to use the super-powers of `nu`\nin your tasks.\n\n## Quick overview and example\n\n![Demo session](assets/demo.gif)\n\n`nur` allows you to execute tasks defined in a file called `nurfile`. It will look through your\ncurrent working directory and all its parents to look for this file. When it has found the `nurfile`\nit will change to the directory the file was found in and then `source` the file into `nu` script.\nYou can define tasks like this:\n\n```nu-script\n# Just tell anybody or the \"world\" hello\ndef \"nur hello\" [\n    name: string = \"world\"  # The name to say hello to\n] {\n    print $\"hello ($name)\"\n}\n```\n\nThe important bit is that you define your tasks as subcommands for \"nur\". If you then execute\n`nur hello` it will print \"hello world\", meaning it did execute the task `hello` in your `nurfile`.\nYou can also use `nur --help` to get some details on how to use `nur` and `nur --help hello` to\nsee what this `hello` task accepts as parameters.\n\nYou may also pass arguments to your `nur` tasks, like using `nur hello bob` to pass \"bob\"\nas the name to the \"hello\" task. This supports all parameter variants normal `nu` scripts could also\nhandle. You may use `nur --help \u003ctask-name\u003e` to see the help for an available command.\n\nYour tasks then can do whatever you want them to do in `nu` script. This allows for very structured\nusage of for example docker to run/manage your project needs. But it can also execute simple commands\nlike you would normally do in your shell (like `npm ci` or something). `nur` is not tied to any\nprogramming language, packaging system or anything. As in the end the `nurfile` is basically a\nnormal `nu` script you can put into this whatever you like.\n\nI recommend reading [working with `nur`](https://nur-taskrunner.github.io/docs/working-with-nur/) to get an\noverview how to use `nur`. Also I recommend reading the `nu` documentation about\n[custom commands](https://www.nushell.sh/book/custom_commands.html) for details on how to define `nu`\ncommands (and `nur` tasks) and at least read through the\n[nu quick tour](https://www.nushell.sh/book/quick_tour.html) to understand some basics and benefits\nabout `nu` scripting.\n\n## Installing `nur`\n\nYou may use `cargo` to quickly install `nur` for your current user:\n\n```shell\n\u003e cargo install nur\n```\n\nThe `nur` binary will be added in `$HOME/.cargo/bin` (or `$\"($env.HOME)/.cargo/bin\"` in `nu` shell).\nMake sure to add this to `$PATH` (or `$env.PATH` in `nu` shell).\n\nFor more details see [the `nur` installation docs](https://nur-taskrunner.github.io/docs/installation.html).\nThis also includes MacOS (using homebrew) and Windows (using `.msi` installer) installation methods.\n\n## Working with `nur`\n\n`nur` uses a file called `nurfile` to define your tasks. This file is a normal `nu` script and may\ninclude any `nur` tasks defined as sub commands to `\"nur\"`. `nur` tasks may use the normal `nu` command\nfeatures to define required arguments, their types and more.\n\nSee the [working with `nur`](https://nur-taskrunner.github.io/docs/working-with-nur/) documentation\nfor more details.\n\n## Switching to `nur`\n\nSwitching to `nur` on a large project or when having many projects can be some hassle. The recommended workflow\nis to create a `nurfile` that only calls the old task runner and then gradually convert your tasks to be rewritten\nas `nur` tasks.\n\nTo simplify this process you may use the script [`nurify`](scripts/nurify.nu) to generate a `nurfile` from\nmany existing task runners.\n\nFor more details see the [switching to nur](https://nur-taskrunner.github.io/docs/switching-to-nur.html)\ndocumentation.\n\n## Contributing\n\nSee the [contributing](CONTRIBUTING.md) documentation for more details.\n","funding_links":["https://github.com/sponsors/ddanier"],"categories":["Integrations"],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnur-taskrunner%2Fnur","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnur-taskrunner%2Fnur","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnur-taskrunner%2Fnur/lists"}