{"id":28753160,"url":"https://github.com/alloc/picorun","last_synced_at":"2026-02-27T14:41:20.972Z","repository":{"id":286349914,"uuid":"961123453","full_name":"alloc/picorun","owner":"alloc","description":"Parallel task runner with a CLI and a JS API","archived":false,"fork":false,"pushed_at":"2025-04-06T19:24:25.000Z","size":29,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-10-06T02:26:50.064Z","etag":null,"topics":["nodejs","task-runner"],"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/alloc.png","metadata":{"files":{"readme":"readme.md","changelog":null,"contributing":null,"funding":null,"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}},"created_at":"2025-04-05T19:59:43.000Z","updated_at":"2025-04-14T21:54:00.000Z","dependencies_parsed_at":"2025-04-05T22:23:03.038Z","dependency_job_id":"97640380-0d1a-4cb3-9a4e-22d350fc13e0","html_url":"https://github.com/alloc/picorun","commit_stats":null,"previous_names":["alloc/picorun"],"tags_count":6,"template":false,"template_full_name":null,"purl":"pkg:github/alloc/picorun","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fpicorun","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fpicorun/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fpicorun/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fpicorun/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/alloc","download_url":"https://codeload.github.com/alloc/picorun/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/alloc%2Fpicorun/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":29899999,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-27T14:30:36.354Z","status":"ssl_error","status_checked_at":"2026-02-27T14:30:01.989Z","response_time":57,"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":["nodejs","task-runner"],"created_at":"2025-06-17T00:38:51.842Z","updated_at":"2026-02-27T14:41:20.958Z","avatar_url":"https://github.com/alloc.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# picorun\n\nRun commands in parallel, with labels and colors, from CLI or JS. Automatically finds executables in `./node_modules/.bin`.\n\n```sh\npnpm add picorun\n```\n\n## CLI Usage\n\n```sh\npicorun \"cmd1\" \"cmd2\" --names=name1,name2 --filter \"name1\"\n```\n\nOptions:\n\n- `--names`: Comma-separated list of custom names for each command.\n- `--filter`: Run only tasks matching the given name pattern (can be used multiple times). Wildcards (`*`) are supported.\n\n## API Usage\n\n```js\nimport picorun from 'picorun'\n\nconst tasks = picorun(\n  // Tasks definition\n  [\n    { cmd: 'cmd1', name: 'Task 1' },\n    { cmd: 'cmd2', name: 'Task 2' },\n    { cmd: 'cmd3', name: 'Another Task' },\n  ],\n  // Options\n  {\n    // Only run tasks named 'Task 1' or 'Task 2'\n    filter: ['Task 1', 'Task 2'],\n  }\n)\n\ntasks[0].name // =\u003e 'Task 1'\ntasks[0].subprocess // =\u003e [object ChildProcess]\n\n// Wait for one task to complete\nawait tasks[0]\n\n// Wait for all tasks to complete\nawait tasks\n```\n\n## Prior Art\n\n- [tinyrun](https://github.com/microlinkhq/tinyrun)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falloc%2Fpicorun","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Falloc%2Fpicorun","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Falloc%2Fpicorun/lists"}