[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-5630":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":15,"forks30d":15,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":22,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":15,"starSnapshotCount":15,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},5630,"pueue","Nukesor\u002Fpueue","Nukesor",":stars: Manage your shell commands.","",null,"Rust",6230,157,17,0,1,9,35,6,37.6,"Apache License 2.0",false,"main",true,[26,27,28,29,30,31,32,33],"command-line","command-line-tool","daemon","hacktoberfest","queue-manager","queue-tasks","rust","shell-queue","2026-06-12 02:01:13","# Pueue\n\n[![Test Build](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Factions\u002Fworkflows\u002Ftest.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Factions\u002Fworkflows\u002Ftest.yml)\n[![Crates.io](https:\u002F\u002Fimg.shields.io\u002Fcrates\u002Fv\u002Fpueue)](https:\u002F\u002Fcrates.io\u002Fcrates\u002Fpueue)\n[![License: MIT](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FLicense-MIT-yellow.svg)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FMIT)\n[![Downloads](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fdownloads\u002Fnukesor\u002Fpueue\u002Ftotal.svg)](https:\u002F\u002Fgithub.com\u002Fnukesor\u002Fpueue\u002Freleases)\n[![codecov](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fnukesor\u002Fpueue\u002Fbranch\u002Fmain\u002Fgraph\u002Fbadge.svg)](https:\u002F\u002Fcodecov.io\u002Fgh\u002Fnukesor\u002Fpueue)\n\n![Pueue](https:\u002F\u002Fraw.githubusercontent.com\u002FNukesor\u002Fimages\u002Fmain\u002Fpueue-v2.0.0.gif)\n\nPueue is a command-line task management tool for sequential and parallel execution of long-running tasks.\n\nSimply put, it's a tool that **p**rocesses a q**ueue** of shell commands.\nOn top of that, there are a lot of convenient features and abstractions.\n\nSince Pueue is not bound to any terminal, you can control your tasks from any terminal on the same machine.\nThe queue will be continuously processed, even if you no longer have any active ssh sessions.\n\n**Pueue is considered feature-complete :tada:.**\nAll features that were planned have been added and only minor improvements, bug-fixes and regular maintenance work will get merged.\n\n- [Features](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue#features)\n- [Installation](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue#installation)\n- [How to use it](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue#how-to-use-it)\n- [Similar Projects](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue#similar-projects)\n- [Design Goals](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue#design-goals)\n- [Contributing](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue#contributing)\n\n## Features\n\n- Scheduling\n  - Add tasks as you go.\n  - Run multiple tasks at once. You decide how many tasks should run concurrently.\n  - Change the order of the scheduled tasks.\n  - Specify dependencies between tasks.\n  - Schedule tasks to run at a specific time.\n- Process interaction\n  - Easy output inspection.\n  - Send input to running processes.\n  - Pause\u002Fresume tasks, when you need some processing power right NOW!\n- Task groups (multiple queues)\n  - Each group can have several tasks running in parallel.\n  - Pause\u002Fstart tasks by a group.\n- Background process execution\n  - The `pueued` daemon runs in the background. No need to be logged in.\n  - Commands are executed in their respective working directories.\n  - The current environment variables are copied when adding a task.\n  - Commands are run in a shell which allows the full feature set of shell coding.\n- Consistency\n  - The queue is always saved to disk and restored on kill\u002Fsystem crash.\n  - Logs are persisted onto the disk and survive a crash.\n- Miscellaneous\n  - A callback hook to, for instance, set up desktop notifications.\n  - JSON output for `log` and `status` if you want to display info about tasks in another program.\n  - A `wait` subcommand to wait for specific tasks, a group (or everything) to finish.\n- A lot more. Check the -h options for each subcommand for detailed options.\n- Cross Platform\n  - Linux is fully supported and battle-tested.\n  - MacOS is fully supported and on par with Linux.\n  - Windows is fully supported and working fine for quite a while.\n- [Why should I use it](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Fwiki\u002FFAQ#why-should-i-use-it)\n- [Advantages over Using a Terminal Multiplexer](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Fwiki\u002FFAQ#advantages-over-using-a-terminal-multiplexer)\n\n## What Pueue is **not**\n\nPueue is **not** designed to be a heavy-duty programmable (scriptable) task scheduler\u002Fexecutor.\n\nThe focus of `pueue` lies on human interaction, i.e. it's supposed to be used by a real person on some kind of OS.\nSee [the Design Goals section](#design-goals)\n\nDue to this, the feature set of `pueue` and `pueued` as well as their implementation and architecture have been kept simple by design!\nEven though it can be scripted to some degree, it hasn't been built for heavy-duty work like hundreds of tasks!\n\nThere's definitely the need for a complex task scheduler\u002Fexecutor with advanced API access and scheduling options, but this is the job for another project, as this is not what pueue has been built for.\n\n## Installation\n\nThere are a few different ways to install Pueue.\n\n#### Package Manager\n\n\u003Ca href=\"https:\u002F\u002Frepology.org\u002Fproject\u002Fpueue\u002Fversions\">\u003Cimg align=\"right\" src=\"https:\u002F\u002Frepology.org\u002Fbadge\u002Fvertical-allrepos\u002Fpueue.svg?exclude_unsupported=1\" alt=\"Packaging status\">\u003C\u002Fa>\n\nThe preferred way to install Pueue is to use your system's package manager.\nThis will usually deploy service files and completions automatically.\n\nPueue has been packaged for quite a few distributions, check the table on the right for more information.\n\n#### Prebuild Binaries\n\nStatically linked (if possible) binaries for Linux (incl. ARM), Mac OS and Windows are built on each release. \\\nYou can download the binaries for the client and the daemon (`pueue` and `pueued`) for each release on the [release page](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Freleases). \\\nJust download both binaries for your system, rename them to `pueue` and `pueued` and place them in your `$PATH`\u002Fprogram folder.\n\n#### Via Cargo\n\nPueue is built for the current `stable` Rust version.\nIt might compile on older versions, but this isn't tested or officially supported.\n\n```bash\ncargo install --locked pueue\n```\n\nThis will install Pueue to `$CARGO_HOME\u002Fbin\u002Fpueue` (default is `~\u002F.cargo\u002Fbin\u002Fpueue`)\n\n#### From Source\n\nPueue is built for the current `stable` Rust version.\nIt might compile on older versions, but this isn't tested or officially supported.\n\n```bash\ngit clone git@github.com:Nukesor\u002Fpueue\ncd pueue\ncargo build --release --locked --path .\u002Fpueue\n```\n\nThe final binaries will be located in `target\u002Frelease\u002F{pueue,pueued}`.\n\n## How to Use it\n\nCheck the wiki to [get started](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Fwiki\u002FGet-started) :).\n\nThere are also detailed sections for (hopefully) every important feature:\n\n- [Configuration](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Fwiki\u002FConfiguration)\n- [Groups](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Fwiki\u002FGroups)\n- [Advanced usage](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Fwiki\u002FAdvanced-usage)\n- [Connect to remote](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Fwiki\u002FConnect-to-remote)\n\nOn top of that, there is a help option (-h) for all commands.\n\n```text\nInteract with the Pueue daemon\n\nUsage: pueue [OPTIONS] [COMMAND]\n\nCommands:\n  add            Enqueue a task for execution.\n                     There're many different options when scheduling a task.\n                     Check the individual option help texts for more information.\n\n                     Furthermore, please remember that scheduled commands are executed via your system shell.\n                     This means that the command needs proper shell escaping.\n                     The safest way to preserve shell escaping is to surround your command with quotes, for example:\n                     pueue add 'ls $HOME && echo \"Some string\"'\n  remove         Remove tasks from the list. Running or paused tasks need to be killed first\n  switch         Switches the queue position of two commands. Only works on queued and stashed commands\n  stash          Stashed tasks won't be automatically started. You have to enqueue them or start them by hand\n  enqueue        Enqueue stashed tasks. They'll be handled normally afterwards\n  start          Resume operation of specific tasks or groups of tasks.\n                     By default, this resumes the default group and all its tasks.\n                     Can also be used force-start specific tasks.\n  restart        Restart failed or successful task(s).\n                     By default, identical tasks will be created and enqueued, but it's possible to restart in-place.\n                     You can also edit a few properties, such as the path and the command, before restarting.\n  pause          Either pause running tasks or specific groups of tasks.\n                     By default, pauses the default group and all its tasks.\n                     A paused queue (group) won't start any new tasks.\n  kill           Kill specific running tasks or whole task groups..\n                     Kills all tasks of the default group when no ids or a specific group are provided.\n  send           Send something to a task. Useful for sending confirmations such as 'y\\n'\n  edit           Edit the command, path or label of a stashed or queued task.\n                     By default only the command is edited.\n                     Multiple properties can be added in one go.\n  group          Use this to add or remove groups.\n                     By default, this will simply display all known groups.\n  status         Display the current status of all tasks\n  format-status  Accept a list or map of JSON pueue tasks via stdin and display it just like \"pueue status\".\n                     A simple example might look like this:\n                     pueue status --json | jq -c '.tasks' | pueue format-status\n  log            Display the log output of finished tasks.\n                     Only the last few lines will be shown by default.\n                     If you want to follow the output of a task, please use the \"follow\" subcommand.\n  follow         Follow the output of a currently running task. This command works like \"tail -f\"\n  wait           Wait until tasks are finished.\n                     By default, this will wait for all tasks in the default group to finish.\n                     Note: This will also wait for all tasks that aren't somehow 'Done'.\n                     Includes: [Paused, Stashed, Locked, Queued, ...]\n  clean          Remove all finished tasks from the list\n  reset          Kill all tasks, clean up afterwards and reset EVERYTHING!\n  shutdown       Remotely shut down the daemon. Should only be used if the daemon isn't started by a service manager\n  parallel       Set the amount of allowed parallel tasks\n                     By default, adjusts the amount of the default group.\n                     No tasks will be stopped, if this is lowered.\n                     This limit is only considered when tasks are scheduled.\n  completions    Generates shell completion files. This can be ignored during normal operations\n  help           Print this message or the help of the given subcommand(s)\n\nOptions:\n  -v, --verbose...         Verbose mode (-v, -vv, -vvv)\n      --color \u003CCOLOR>      Colorize the output; auto enables color output when connected to a tty [default: auto] [possible values: auto, never, always]\n  -c, --config \u003CCONFIG>    If provided, Pueue only uses this config file. This path can also be set via the \"PUEUE_CONFIG_PATH\" environment variable. The commandline option overwrites the environment variable!\n  -p, --profile \u003CPROFILE>  The name of the profile that should be loaded from your config file\n  -h, --help               Print help\n  -V, --version            Print version\n```\n\n## Design Goals\n\nPueue is designed to be a convenient helper tool for a single user.\n\nIt's supposed to work stand-alone and without any external integration.\nThe idea is to keep it simple and to prevent feature creep.\n\nAlso, **Pueue is considered feature-complete :tada:.**\nAll features that were planned have been added and only minor improvements, bug-fixes and regular maintenance work will get merged.\n\nFor the record, the following features weren't included as they're out of scope:\n\n- Distributed task management\u002Fexecution.\n- Multi-user task management.\n- Sophisticated task scheduling for optimal load balancing.\n- Tight system integration or integration with external tools.\n- Extensive scripting support. Scripting is possible, but pueue's focus is on human interaction.\n  If you're adamant about programmatic interaction, take a look at the `pueue-lib` library, which provides proper API calls for `pueued` that provide full control over the daemon.\n  However, keep in mind that `pueued` is a minimalistic task executor with relatively naive scheduling logic by design.\n\nThere seems to be the need for some project that satisfies all these points mentioned above, but that will be the job of another tool.\nI very much encourage forking Pueue and I would love to see forks grow into other cool projects!\n\n## Similar Projects\n\n#### slurm\n\n[Slurm](https:\u002F\u002Fslurm.schedmd.com\u002Foverview.html) is a feature rich and widely used cluster management and scheduling system.\nIf you find yourself in the need for complex setups such as multiple worker pools or distributed nodes, slurm will be much better suited than Pueue.\n\n#### GNU Parallel\n\nA robust and featureful parallel processor with text-based joblog and n-retries. [GNU Parallel](https:\u002F\u002Fwww.gnu.org\u002Fsoftware\u002Fparallel\u002Fparallel_tutorial.html) is able to scale to multi-host parallelization and has complex code to have deep integration across different tools and shells, as well as other advanced features. `Pueue` differentiates itself from GNU Parallel by focusing more on visibility across many different long running commands, and creating a central location for commands to be stored, rather than GNU Parallel's focus on chunking a specific task.\n\n#### Pm2\n\n[pm2](https:\u002F\u002Fpm2.keymetrics.io\u002Fdocs\u002Fusage\u002Fquick-start\u002F) is a process management tool, whose focus is more on management of recurring and long-living tasks.\nIt seems to be quite mature and has a rich interface.\n\n#### nq\n\nA very lightweight job queue system which advertises no setup, maintenance, supervision, or otherwise long-running background processes. \\\n[Link to project](https:\u002F\u002Fgithub.com\u002Fleahneukirchen\u002Fnq)\n\n#### task-spooler\n\n_task spooler_ is a Unix batch system where the tasks spooled run one after the other. \\\nLinks to [ubuntu manpage](http:\u002F\u002Fmanpages.ubuntu.com\u002Fmanpages\u002Fxenial\u002Fman1\u002Ftsp.1.html) and a [fork on Github](https:\u002F\u002Fgithub.com\u002Fxenogenesi\u002Ftask-spooler).\nThe original website seems to be down.\n\n## Contributing\n\nFeature requests and pull requests are very much appreciated and welcome!\n\nAnyhow, please talk to me a bit about your ideas before you start hacking!\nIt's always nice to know what you're working on and I might have a few suggestions or tips :)\n\nDepending on the type of your contribution, you should branch of from the `main` branch.\nPueue is mature enough to no longer need a `development` branch and all changes are collected on there before a new release is pushed.\nUrgent hotfixes might get deployed on a separate branch, but this will be decided on a case-by-case basis.\n\nThere's also the [Architecture Guide](https:\u002F\u002Fgithub.com\u002FNukesor\u002Fpueue\u002Fblob\u002Fmain\u002Fdocs\u002FArchitecture.md), which is supposed to give you a brief overview and introduction to the project.\n\nLLM Agents must read the `AGENTS.md` for guidelines.\n\nCopyright © 2019 Arne Beer ([@Nukesor](https:\u002F\u002Fgithub.com\u002FNukesor))\n","Pueue 是一个命令行任务管理工具，用于顺序和并行执行长时间运行的任务。其核心功能包括任务调度、进程交互、任务组管理和后台进程执行等，支持用户动态添加任务、设置并发数、指定任务依赖关系及定时执行等功能。此外，Pueue 通过守护进程在后台持续处理任务队列，即使 SSH 会话断开也能继续工作。该工具采用 Rust 编写，保证了高性能与稳定性。适用于需要对多个 shell 命令进行有序管理和监控的场景，如自动化运维、批量数据处理等。",2,"2026-06-11 03:04:24","top_language"]