# nukesor/pueue

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/nukesor-pueue).**

6,054 stars · 152 forks · Rust · apache-2.0

## Links

- GitHub: https://github.com/Nukesor/pueue
- awesome-repositories: https://awesome-repositories.com/repository/nukesor-pueue.md

## Topics

`command-line` `command-line-tool` `daemon` `hacktoberfest` `queue-manager` `queue-tasks` `rust` `shell-queue`

## Description

Pueue is a task queue manager for shell commands, built as a daemon and command-line interface. It accepts shell commands into a managed queue and executes them with configurable parallel execution limits, supporting both global and per-group concurrency controls. The daemon persists its entire state—task queue, logs, and configuration—to disk, ensuring survival across crashes and system restarts.

The project distinguishes itself through a dependency graph that lets tasks declare prerequisites, forming a directed acyclic graph that controls execution order. Tasks can be organized into named groups, each with independent parallelism limits and pause/resume controls, preventing resource contention between different workloads. Remote management is supported via a daemon-client TCP protocol with TLS encryption and shared-secret authentication, or through SSH tunneling for secure access without network exposure. An interactive fuzzy-finder interface provides keyboard-driven browsing, filtering, and control of tasks with live log viewing.

Beyond core queuing and scheduling, Pueue offers delayed and time-based execution, batch operations on multiple tasks, and the ability to stash tasks for later processing. Users can edit queued tasks, reorder the queue, restart failed or completed tasks, and send input to running processes. Completion callbacks trigger user-defined shell commands with task metadata when processes finish. The CLI outputs task status and logs as structured JSON for integration with external tools, and generates shell completions for Bash, Zsh, and Fish.

## Tags

### Development Tools & Productivity

- [Queued Shell Command Managers](https://awesome-repositories.com/f/development-tools-productivity/shell-command-execution/queued-shell-command-managers.md) — Manages a queue of shell commands for sequential or parallel execution with pause, resume, and dependency control.
- [Job Schedulers](https://awesome-repositories.com/f/development-tools-productivity/job-schedulers.md) — Schedules shell commands to run at a specific time or after a delay with dependency chaining and parallel execution limits.
- [Queued Parallel Command Executors](https://awesome-repositories.com/f/development-tools-productivity/parallel-command-execution/queued-parallel-command-executors.md) — Queues shell commands and runs them concurrently with configurable per-group parallelism limits.
- [Task Dependency Management](https://awesome-repositories.com/f/development-tools-productivity/task-dependency-management.md) — Defines task dependencies so a command only starts after its prerequisites complete successfully.
- [Interactive Fuzzy Finders](https://awesome-repositories.com/f/development-tools-productivity/interactive-fuzzy-finders.md) — Provides a keyboard-driven interface to view, filter, and control tasks using a fuzzy finder with live logs. ([source](https://github.com/Nukesor/pueue/wiki/Advanced-usage))
- [Interactive Task Runners](https://awesome-repositories.com/f/development-tools-productivity/interactive-task-runners.md) — Provides a keyboard-driven fuzzy finder interface to view, filter, and control queued tasks.
- [Task Stashing](https://awesome-repositories.com/f/development-tools-productivity/snippet-stashing/task-stashing.md) — Mark tasks as stashed so they remain in the queue but are not automatically started until explicitly enqueued or started. ([source](https://github.com/Nukesor/pueue/wiki/Get-started))
- [Task Completion Notifications](https://awesome-repositories.com/f/development-tools-productivity/task-completion-notifications.md) — Runs a custom hook (e.g., desktop notification) when a task finishes. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Blocking Completion Waits](https://awesome-repositories.com/f/development-tools-productivity/task-completion-notifications/blocking-completion-waits.md) — Blocks until specified tasks, a group, or all tasks finish, useful for scripting. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Task Hooks](https://awesome-repositories.com/f/development-tools-productivity/task-execution/task-hooks.md) — Executes a user-defined shell command with task metadata when a queued process finishes.

### Business & Productivity Software

- [Task Execution Controllers](https://awesome-repositories.com/f/business-productivity-software/activity-trackers/task-execution-controllers.md) — Pause, resume, or start individual tasks or the entire daemon, with the ability to force-start tasks ignoring parallel limits. ([source](https://github.com/Nukesor/pueue/wiki/Get-started))

### DevOps & Infrastructure

- [Running Task Terminations](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-schedulers/os-scheduling-simulations/task-schedulers/running-task-terminations.md) — Terminates specific tasks or all tasks in a group immediately. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Custom TCP Protocols](https://awesome-repositories.com/f/devops-infrastructure/container-daemons/client-server-daemon-architectures/custom-tcp-protocols.md) — Communicates between CLI and daemon over a custom TCP protocol with TLS encryption and shared-secret authentication.
- [Task Pause and Resume Controls](https://awesome-repositories.com/f/devops-infrastructure/deployment-strategies/pause-and-resume-strategies/task-pause-and-resume-controls.md) — Suspends or resumes individual tasks or entire groups, freeing system resources on demand. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Delayed Shell Command Executions](https://awesome-repositories.com/f/devops-infrastructure/job-execution-engines/delayed-executions/delayed-shell-command-executions.md) — Adds tasks with a delay or forces immediate start, controlling exactly when each command begins running. ([source](https://github.com/Nukesor/pueue/wiki/Get-started))
- [Group-Based Concurrency Limits](https://awesome-repositories.com/f/devops-infrastructure/job-scheduling/group-execution-control/sequential-and-parallel-job-groups/group-based-concurrency-limits.md) — Divides tasks into named groups with independent concurrency limits to prevent resource contention.
- [Parallel Execution Settings](https://awesome-repositories.com/f/devops-infrastructure/parallel-execution-settings.md) — Adjust the maximum number of tasks that run concurrently at runtime without restarting the daemon. ([source](https://github.com/Nukesor/pueue/wiki/Get-started))
- [Dependency Graph Queues](https://awesome-repositories.com/f/devops-infrastructure/task-queues/dependency-graph-queues.md) — Maintains a task queue where each task can declare prerequisites, forming a directed acyclic graph for execution order.
- [Task Restarts](https://awesome-repositories.com/f/devops-infrastructure/automation-orchestration/task-execution-frameworks/task-job-management/task-lifecycle-management/failed-task-inspections/task-restarts.md) — Re-creates or re-runs tasks that failed or completed, optionally editing the command or path. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Remote Command Execution](https://awesome-repositories.com/f/devops-infrastructure/remote-command-execution.md) — Runs and monitors shell commands on remote machines via a daemon with TLS or SSH tunneling.
- [Queue Reordering](https://awesome-repositories.com/f/devops-infrastructure/task-queues/queue-reordering.md) — Swaps the positions of two queued or stashed tasks to change execution order. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Named Worker Pools](https://awesome-repositories.com/f/devops-infrastructure/worker-pool-management/local-worker-pools/named-worker-pools.md) — Group tasks into named worker pools with independent parallelism limits and expose worker ID and group name through environment variables. ([source](https://github.com/Nukesor/pueue/wiki/Get-started))

### Security & Cryptography

- [Resource Management Groups](https://awesome-repositories.com/f/security-cryptography/account-management/hierarchical-grouping/resource-management-groups.md) — Organizes shell commands into named groups with independent concurrency limits to prevent system overload.
- [Group-Level Pause and Resume](https://awesome-repositories.com/f/security-cryptography/account-management/hierarchical-grouping/resource-management-groups/group-metadata-management/task-group-lifecycle-management/group-level-pause-and-resume.md) — Suspend or resume all tasks in a single group without affecting tasks in other groups. ([source](https://github.com/Nukesor/pueue/wiki/Groups))
- [Named Group Definitions](https://awesome-repositories.com/f/security-cryptography/account-management/hierarchical-grouping/resource-management-groups/named-group-definitions.md) — Create or delete named groups to organize tasks by resource usage. ([source](https://github.com/Nukesor/pueue/wiki/Groups))
- [SSH Tunneling](https://awesome-repositories.com/f/security-cryptography/network-infrastructure-security/web-network-security/network-security/network-routing-access-control/ssh-tunneling.md) — Forwards the daemon's TCP port or Unix socket through an SSH connection for secure remote management.

### Software Engineering & Architecture

- [Named Group Assignments](https://awesome-repositories.com/f/software-engineering-architecture/asynchronous-task-managers/task-group-orchestration/named-group-assignments.md) — Route a new task into a specific group so it follows that group's parallelism rules. ([source](https://github.com/Nukesor/pueue/wiki/Groups))
- [Concurrent Task Limiters](https://awesome-repositories.com/f/software-engineering-architecture/concurrent-task-runners/concurrent-task-limiters.md) — Adjusts the maximum number of concurrent tasks for a group or globally without stopping running tasks. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Disk Persistence](https://awesome-repositories.com/f/software-engineering-architecture/human-in-the-loop-workflows/real-time-change-tracking/disk-persistence.md) — Saves the entire task queue, logs, and daemon state to disk for survival across crashes and restarts.
- [Queue and Log Persistence](https://awesome-repositories.com/f/software-engineering-architecture/persistent-operation-queues/queue-and-log-persistence.md) — Saves the task queue and logs to disk so they survive crashes or system restarts. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Parallel Task Executors](https://awesome-repositories.com/f/software-engineering-architecture/task-scheduling/parallel-task-executors.md) — Controls how many tasks run concurrently, allowing a configurable limit per group or globally. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))

### System Administration & Monitoring

- [Task Progress Monitors](https://awesome-repositories.com/f/system-administration-monitoring/activity-monitors/activity-progress-monitors/task-progress-monitors.md) — Displays the status of all queued and running tasks, and streams live output of individual commands as they execute. ([source](https://github.com/Nukesor/pueue/wiki/Get-started))
- [Task Schedulers](https://awesome-repositories.com/f/system-administration-monitoring/task-schedulers.md) — Delays task execution to a specific time or date. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [Batch Task Operations](https://awesome-repositories.com/f/system-administration-monitoring/task-management/batch-task-operations.md) — Apply commands like viewing logs or pausing to multiple tasks at once using space-separated IDs or shell range syntax. ([source](https://github.com/Nukesor/pueue/wiki/Get-started))
- [Interactive Fuzzy Finder Monitors](https://awesome-repositories.com/f/system-administration-monitoring/task-status-monitors/interactive-fuzzy-finder-monitors.md) — Views real-time task status and logs with keyboard-driven filtering and control using a fuzzy finder.

### Data & Databases

- [Live and Historical Output Viewers](https://awesome-repositories.com/f/data-databases/task-result-storage/task-output-persistence/live-and-historical-output-viewers.md) — Displays logs of finished tasks or follows output of running tasks in real time. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))

### Repository Format

- [Daemon Client Connections](https://awesome-repositories.com/f/repository-format/remote-connection-management/daemon-client-connections.md) — Manages tasks on a remote machine by pointing the CLI to a remote daemon instance. ([source](https://cdn.jsdelivr.net/gh/nukesor/pueue@main/README.md))
- [TLS and SSH Remote Managers](https://awesome-repositories.com/f/repository-format/remote-connection-management/daemon-client-connections/tls-and-ssh-remote-managers.md) — Connects to a remote pueued daemon over TLS or SSH to manage tasks on another machine.

### Part of an Awesome List

- [System Utilities](https://awesome-repositories.com/f/awesome-lists/devtools/system-utilities.md) — Manager for long-running shell commands.
