Baike.dev
All toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
P

pueue

> 编程语言
Open source

:stars: Manage your shell commands.

6.3K stars0 likes0 views
WebsiteGitHub

About

:stars: Manage your shell commands.

Pueue

Pueue is a command-line task management tool for sequential and parallel execution of long-running tasks.

Simply put, it's a tool that processes a queue of shell commands. On top of that, there are a lot of convenient features and abstractions.

Since Pueue is not bound to any terminal, you can control your tasks from any terminal on the same machine. The queue will be continuously processed, even if you no longer have any active ssh sessions.

Pueue is considered feature-complete :tada:. All features that were planned have been added and only minor improvements, bug-fixes and regular maintenance work will get merged.

  • Features
  • Installation
  • How to use it
  • Similar Projects
  • Design Goals
  • Contributing

Features

  • Scheduling
    • Add tasks as you go.
    • Run multiple tasks at once. You decide how many tasks should run concurrently.
    • Change the order of the scheduled tasks.
    • Specify dependencies between tasks.
    • Schedule tasks to run at a specific time.
  • Process interaction
    • Easy output inspection.
    • Send input to running processes.
    • Pause/resume tasks, when you need some processing power right NOW!
  • Task groups (multiple queues)
    • Each group can have several tasks running in parallel.
    • Pause/start tasks by a group.
  • Background process execution
    • The pueued daemon runs in the background. No need to be logged in.
    • Commands are executed in their respective working directories.
    • The current environment variables are copied when adding a task.
    • Commands are run in a shell which allows the full feature set of shell coding.
  • Consistency
    • The queue is always saved to disk and restored on kill/system crash.
    • Logs are persisted onto the disk and survive a crash.
  • Miscellaneous
    • A callback hook to, for instance, set up desktop notifications.
    • JSON output for log and status if you want to display info about tasks in another program.
    • A wait subcommand to wait for specific tasks, a group (or everything) to finish.
  • A lot more. Check the -h options for each subcommand for detailed options.
  • Cross Platform
    • Linux is fully supported and battle-tested.
    • MacOS is fully supported and on par with Linux.
    • Windows is fully supported and working fine for quite a while.
  • Why should I use it
  • Advantages over Using a Terminal Multiplexer

What Pueue is not

Pueue is not designed to be a heavy-duty programmable (scriptable) task scheduler/executor.

The focus of pueue lies on human interaction, i.e. it's supposed to be used by a real person on some kind of OS. See the Design Goals section

Due to this, the feature set of pueue and pueued as well as their implementation and architecture have been kept simple by design! Even though it can be scripted to some degree, it hasn't been built for heavy-duty work like hundreds of tasks!

There's definitely the need for a complex task scheduler/executor 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.

Installation

There are a few different ways to install Pueue.

Package Manager

The preferred way to install Pueue is to use your system's package manager. This will usually deploy service files and completions automatically.

Pueue has been packaged for quite a few distributions, check the table on the right for more information.

Prebuild Binaries

Statically linked (if possible) binaries for Linux (incl. ARM), Mac OS and Windows are built on each release.
You can download the binaries for the client and the daemon (pueue and pueued) for each release on the release page.
Just download both binaries for your system, rename them to pueue and pueued and place them in your $PATH/program folder.

Via Cargo

Pueue is built for the current stable Rust version. It might compile on older versions, but this isn't tested or officially supported.

cargo install --locked pueue

This will install Pueue to $CARGO_HOME/bin/pueue (default is ~/.cargo/bin/pueue)

From Source

Pueue is built for the current stable Rust version. It might compile on older versions, but this isn't tested or officially supported.

git clone [email protected]:Nukesor/pueue
cd pueue
cargo build --release --locked --path ./pueue

The final binaries will be located in target/release/{pueue,pueued}.

How to Use it

Check the wiki to get started :).

There are also detailed sections for (hopefully) every important feature:

  • Configuration
  • Groups
  • Advanced usage
  • Connect to remote

On top of that, there is a help option (-h) for all commands.

…

Design Goals

Pueue is designed to be a convenient helper tool for a single user.

It's supposed to work stand-alone and without any external integration. The idea is to keep it simple and to prevent feature creep.

Also, Pueue is considered feature-complete :tada:. All features that were planned have been added and only minor improvements, bug-fixes and regular maintenance work will get merged.

For the record, the following features weren't included as they're out of scope:

  • Distributed task management/execution.
  • Multi-user task management.
  • Sophisticated task scheduling for optimal load balancing.
  • Tight system integration or integration with external tools.
  • Extensive scripting support. Scripting is possible, but pueue's focus is on human interaction. 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. However, keep in mind that pueued is a minimalistic task executor with relatively naive scheduling logic by design.

There seems to be the need for some project that satisfies all these points mentioned above, but that will be the job of another tool. I very much encourage forking Pueue and I would love to see forks grow into other cool projects!

Similar Projects

slurm

Slurm is a feature rich and widely used cluster management and scheduling system. If 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.

GNU Parallel

A robust and featureful parallel processor with text-based joblog and n-retries. GNU Parallel 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.

Pm2

pm2 is a process management tool, whose focus is more on management of recurring and long-living tasks. It seems to be quite mature and has a rich interface.

nq

A very lightweight job queue system which advertises no setup, maintenance, supervision, or otherwise long-running background processes.
Link to project

task-spooler

task spooler is a Unix batch system where the tasks spooled run one after the other.
Links to ubuntu manpage and a fork on Github. The original website seems to be down.

Contributing

Feature requests and pull requests are very much appreciated and welcome!

Anyhow, please talk to me a bit about your ideas before you start hacking! It's always nice to know what you're working on and I might have a few suggestions or tips :)

Depending on the type of your contribution, you should branch of from the main branch. Pueue is mature enough to no longer need a development branch and all changes are collected on there before a new release is pushed. Urgent hotfixes might get deployed on a separate branch, but this will be decided on a case-by-case basis.

There's also the Architecture Guide, which is supposed to give you a brief overview and introduction to the project.

LLM Agents must read the AGENTS.md for guidelines.

Copyright © 2019 Arne Beer (@Nukesor)

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Rustcommand-linecommand-line-tooldaemonhacktoberfest

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言