:stars: Manage your shell commands.

Overview

Pueue

GitHub Actions Workflow Crates.io License: MIT Downloads

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.

Announcement: v0.10.0 changed and broke a lot of things. Please check the release Changelog.

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.
    • Environment variables are on pueue add.
  • 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.
    • Convenient methods for scripting
  • A lot more. Check the -h options for each subcommand for detailed options.

Works on Linux and partially on MacOS and Windows.
Check these issues to find out what's missing for MacOs (#115) and Windows (#114).

Why should I use it

Consider this scenario: You have to unpack large amounts of data into various directories. Usually, something like this ends with 10+ open terminals/tmux sessions and an over-challenged hard drive.

Another scenario might be, that you want to re-encode 10 movies and each re-encode takes 10+ hours. Creating a chained command with &&s isn't ergonomic at all and running that many re-encodes in parallel will break your CPU.

Pueue is specifically designed for these situations.
You can schedule your task and continue on the same shell without waiting. You can specify how many tasks should run in parallel and group tasks to maximize system resource utilization.
Since everything is run by a daemon, you can simply log off your server and check on your tasks' progress whenever you want.
Heck, you can even set up desktop notifications to get notified or execute parameterized commands every time a task finishes.

A few possible applications:

  • Copying large amounts of data
  • Machine learning
  • Compression tasks
  • Movie encoding
  • rsync tasks
  • Anything that takes longer than 5 minutes

Pueue made at least my life a lot easier on many occasions.

If you like the project, feel free to give it at try! If you feel like something is missing, please create an issue :).
PRs are of course very welcome!

Installation

There are four different ways to install Pueue.

Package Manager

Packaging status

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 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/pueue
cargo install --path .

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

How to use it

Check out the wiki to get you started :).

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

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

Pueue client 0.10.0
Arne Beer <[email protected]>
Interact with the Pueue daemon

USAGE:
    pueue [FLAGS] [OPTIONS] <SUBCOMMAND>

FLAGS:
    -h, --help       Prints help information
    -v, --verbose    Verbose mode (-v, -vv, -vvv)
    -V, --version    Prints version information

OPTIONS:
    -c, --config <config>    Path to a specific pueue config daemon, that should be used. This
                             ignores all other config files

SUBCOMMANDS:
    add            Enqueue a task for execution
    clean          Remove all finished tasks from the list (also clears logs)
    completions    Generates shell completion files. This can be ignored during normal
                   operations
    edit           Edit the command or path of a stashed or queued task.
                   This edits the command of the task by default.
    enqueue        Enqueue stashed tasks. They'll be handled normally afterwards
    follow         Follow the output of a currently running task. This command works like tail
                   -f
    group          Manage groups. By default, this will simply display all known groups
    help           Prints this message or the help of the given subcommand(s)
    kill           Kill specific running tasks or various groups of tasks
    log            Display the log output of finished tasks. Prints either all logs or only the
                   logs of specified tasks
    parallel       Set the amount of allowed parallel tasks
    pause          Pause either running tasks or specific groups of tasks.
                   By default, pauses the default queue and all its tasks.
                   A paused queue (group) won't start any new tasks.
    remove         Remove tasks from the list. Running or paused tasks need to be killed first
    reset          Kill all running tasks on user behalf, remove all tasks and reset max_task_id
    restart        Restart task(s). Identical tasks will be created and by default enqueued. By
                   default, a new task will be created
    send           Send something to a task. Useful for sending confirmations such as 'y\n'
    shutdown       Remotely shut down the daemon. Should only be used if the daemon isn't
                   started by a service manager
    start          Resume operation of specific tasks or groups of tasks.
                   By default, this resumes the default queue and all its tasks.
                   Can also be used force-start specific tasks.
    stash          Stashed tasks won't be automatically started. Either enqueue them, to be
                   normally handled or explicitly start them
    status         Display the current status of all tasks
    switch         Switches the queue position of two commands. Only works on queued and stashed
                   commands
    wait           Wait until tasks are finished. This can be quite useful for scripting. By
                   default, this will wait for all tasks in the default queue to finish. Note:
                   This will also wait for all tasks that aren't somehow 'Done'. Includes:
                   [Paused, Stashed, Locked, Queued, ...]

Advantages over Using a Terminal Multiplexer

One of the most frequent questions is, why one should use Pueue, when there're terminal multiplexer such as Tmux or Screen.

My response is, that there're simply a lot of missing convenience features.
Here are few examples of Pueue's basic functionality.

  • The ability to queue commands and not start them all at once
  • Specifying how many tasks should run in parallel
  • Easy pausing/resuming of tasks
  • Pretty and accessible task status overviews
  • No need to attach to multiple tmux sessions

There are a lot more built-in convenience features. You should read the Wiki for a detailed explanation.

Only using your shell's features is definitely possible! However, in my opinion, having a tool that's specifically designed for managing tasks is just more efficient and fun.

One of my regular use cases is downloading lots of stuff. In this case, I want:

  • At most three parallel downloads, otherwise the other services on my server get starved.
  • To see at first glance whether a download fails and easily edit and re-schedule it.
  • An easy way to look at process output.
  • Everything to be in a uniform interface.
  • It to look pretty and clear.
  • To be able to pause/resume everything in case I need to some bandwidth right now.

I used tmux for this stuff all the time before writing Pueue.
However, after using it for a really long time, it just kept feeling annoying and inconvenient. Up to the point, I couldn't bear it any longer and decided to write something that's better suited for such scenarios.

Similar Projects

nq

A very lightweight job queue systems which require no setup, maintenance, supervision, or any long-running 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 :)

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

Copyright © 2019 Arne Beer (@Nukesor)

Comments
  • Filtering `pueue status`

    Filtering `pueue status`

    Describe the solution you'd like It would be great to be able to filter tasks with pueue status (or some other command?), particularly when multiple groups are involved. For example, I have cronjobs that queue up multiple types of tasks. It can be rather chaotic to examine the status for all tasks across all groups.

    Some ideas:

    • An option to show the most recent n tasks (with or without --group filtering): pueue status --last 10
    • An option to filter by date/time, with behavior similar to the --delay option for pueue add:
      • pueue status --since 1d
      • pueue status --filter 2021-06-23
      • pueue status --filter 2021-06-01..2021-06-05

    Describe alternatives you've considered I could use pueue status --json and jq or similar, but...

    f: Help wanted t: feature 
    opened by codekoala 20
  • [BUG] excessive memory and CPU usage with large outputs

    [BUG] excessive memory and CPU usage with large outputs

    I'm using pueue to queue up some large file copies -- and it's pretty nice!

    However I notice after a while, it's taking several seconds of pueued CPU time to pueue add date a new task. I would have expected it's just adding it to some kind of in-memory or on-disk queue, and the time should be proportional to the fairly short command line.

    I also see pueued seems to be using a lot of memory for what it's doing:

      PID TTY      STAT   TIME  MAJFL   TRS   DRS   RSS %MEM COMMAND 
    16885 pts/11   SNl+   2:54     71  1930 1043077 779556 13.3 pueued
    

    I don't know how to reproduce it, but maybe it's connected to some of these commands producing a lot of output? Ideally it would just stay on files on disk and not be in memory.

    This is pueue 0.3.1 from Cargo, on Debian Buster.

    t: discussion t: enhancement 
    opened by sourcefrog 19
  • Feature request - ncurses interface

    Feature request - ncurses interface

    First of all, thank you for this. I've been using pueue because it makes for a nifty way to be more productive. I was wondering if an ncurses interface is a wanted feature. I think it would be awesome, specially if it can get commands by opening the default editor or some tricks like that. It would definitely attract some more stars.

    On the other hand, it's kind of unnecessary/bloat and might be a bit lenghty thing to implement. What are your thoughts on this?

    t: feature 
    opened by mvrozanti 18
  • [BUG] Test failure related to terminal environment

    [BUG] Test failure related to terminal environment

    Describe the bug

    I'm working on updating pueue in nixpkgs and observed that it seems the table output does not match because the terminal size or environment in the nixpkgs test environment does not match. I can see that the width seems to be larger in the nixpkgs setup.

    If the tests assume a certain environment that I can emulate, I can set that up in the nixpkgs test suite.

    Logs/Output

    You can see the error in the following:

    https://logs.nix.ci/?key=nixos/nixpkgs.185175&attempt_id=594588bf-51e5-4a45-84d3-a71697764db1

    by searching for, for example, "---- client::status::full_status stdout ----".

    opened by tjni 17
  • FR: track task creation time

    FR: track task creation time

    Is your feature request related to a problem?

    I wanted to track how long my tasks are waiting in the queue, only to find out there is no 'task created' timestamp. Only the time that the task started running, the time the task stopped running, and, if enqueued with a delay, the enqueue_at time are tracked.

    Describe the solution you'd like

    Add a 'created' timestamp to the task structure. It only needs to exist in the JSON output as far as I am concerned.

    Describe alternatives you've considered

    I now record the time I added a job to pueue separately, to combine this later on. This is error prone and more complex to handle.

    t: feature s: Pueue-lib s: Daemon 
    opened by mjpieters 15
  • Pause Single Running Process instead of all Process

    Pause Single Running Process instead of all Process

    Is your feature request related to a problem? Please describe. A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]

    • Good to have feature, not the end of the world tho

    Describe the solution you'd like A clear and concise description of what you want to happen.

    • Pause A Single Running Process instead of all Process/Parallel Process/Queue.

    Describe alternatives you've considered A clear and concise description of any alternative solutions or features you've considered.

    • Dont think this exist on any other similar programs e.g nq, task-spooler

    Additional context Add any other context or screenshots about the feature request here.

    • Lets say i already started a conversion process of a video file, then suddenly i need the pc to do other things that requires resources. I can't really pause it because then i wont be able to use this program for other queue task. Would be nice to choose which process you want to pause and still use the program for other queue, then at the end of the day resume the conversion process without having to restart the whole video conversion all over again.
    t: feature 
    opened by gotbletu 15
  • Give each task a separate process group

    Give each task a separate process group

    This makes it vastly easier to handle task singnalling; signals can be sent to all processes in the group, including SIGTERM.

    The Apple and Linux variants have largely been combined into a single codebase, and tests have been enabled for MacOS as a result.

    Fixes #372

    Checklist

    • [x] I picked the correct source and target branch.
    • [x] I included a new entry to the CHANGELOG.md.
    • [x] I checked cargo clippy and cargo fmt. The CI will fail otherwise anyway.
    • [x] (If applicable) I added tests for this feature or adjusted existing tests.
    • [ ] (If applicable) I checked if anything in the wiki needs to be changed.
    opened by mjpieters 14
  • Add --color cli switch

    Add --color cli switch

    This adds a --color switch to the pueue command, controlling when output will include ANSI styles (colors, bolding). The default, auto matches the current behaviour: style when connected to a TTY.

    This PR refactors the way styling is handled (consolidating color choices and styling into a single location struct), and this struct then tracks if styling can be output or not.

    This would fix #318.

    Checklist

    • [x] I picked the correct source and target branch.
    • [x] I included a new entry to the CHANGELOG.md.
    • [x] I checked cargo clippy and cargo fmt. The CI will fail otherwise anyway.
    • [ ] (If applicable) I added tests for this feature or adjusted existing tests.
    • [ ] (If applicable) I checked if anything in the wiki needs to be changed.
    opened by mjpieters 13
  • Allow `~` in Pueue config paths

    Allow `~` in Pueue config paths

    Describe the bug The documentation says you can use e.g. $USER or $HOME (shell in general) in the configuration file (https://github.com/Nukesor/pueue/wiki/Configuration). At least it seams to me like that...But this results in a literal $HOME directory.

    To Reproduce Use pueue_directory: $HOME/.local/share/pueue in your config.

    Expected behavior The daemon should resolve the path the the actual location.

    Additional context OS: Archlinux pueue daemon: 0.12.1

    f: Help wanted t: feature 
    opened by dadav 13
  • [BUG] Io Error on startup

    [BUG] Io Error on startup

    Describe the bug

    I run the command and get an Io error, like below:

    $ pueued
    Error: Io Error: No such file or directory (os error 2)
    
    Caused by:
        No such file or directory (os error 2)
    

    Running on verbose doesn't seem to help, version is 2.0.0 installed via cargo

    Steps to reproduce the bug

    1. Run pueued
    2. Observe the Io Error

    Expected behavior

    Pueue should have started in the background

    Additional context

    • OS: Ubuntu Linux 18.04

    My best guess is that pueue is making use of a directory/port/file that I don't have read/write access to. Any ideas?

    t: bug 
    opened by EntilZha 12
  • Failed to run tasks with admin privilege (sudo)

    Failed to run tasks with admin privilege (sudo)

    Hi, I found pueue on reddit and tried it recently. It makes me work more productive. Sometimes I need to run scripts with admin privilege: sudo ./my_script

    I don't know how to handle command with "sudo" in pueue. Below screenshot is just an example, the log shows error:

    sudo: no tty present and no askpass program specified

    Screenshot from 2021-08-23 01-43-12

    Command with "sudo" is added, but it failed to run. No password prompt is shown to me so I cannot fill in the passwrd.

    Thanks, Minh

    opened by minhng92 12
  • build(deps): bump tokio from 1.23.0 to 1.23.1

    build(deps): bump tokio from 1.23.0 to 1.23.1

    Bumps tokio from 1.23.0 to 1.23.1.

    Release notes

    Sourced from tokio's releases.

    Tokio v1.23.1

    This release forward ports changes from 1.18.4.

    Fixed

    • net: fix Windows named pipe server builder to maintain option when toggling pipe mode (#5336).

    #5336: tokio-rs/tokio#5336

    Commits
    • 1a997ff chore: prepare Tokio v1.23.1 release
    • a8fe333 Merge branch 'tokio-1.20.x' into tokio-1.23.x
    • ba81945 chore: prepare Tokio 1.20.3 release
    • 763bdc9 ci: run WASI tasks using latest Rust
    • 9f98535 Merge remote-tracking branch 'origin/tokio-1.18.x' into fix-named-pipes-1.20
    • 9241c3e chore: prepare Tokio v1.18.4 release
    • 699573d net: fix named pipes server configuration builder
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    t: dependencies rust 
    opened by dependabot[bot] 2
  • [Debt] Darwin-Libproc is unmaintained

    [Debt] Darwin-Libproc is unmaintained

    Well, it looks like the dev dependency repository https://github.com/jamwaffles/darwin-libproc for apple has just been deleted.

    The repository no longer exists or has been made private. In any way this is a problem.

    o: MacOS t: technical debt 
    opened by Nukesor 3
  • [Feature] Proper FreeBSD build support

    [Feature] Proper FreeBSD build support

    The idea is to properly support FreeBSD builds.

    This would include CI builds, tests and everything the other platforms do as well.

    Since I'm not using FreeBSD myself, this would need to be done by a community member.

    f: Help wanted t: feature o: BSD 
    opened by Nukesor 0
  • [Debt] Move away from the `serde_cbor` crate

    [Debt] Move away from the `serde_cbor` crate

    The cbor crate has been officially archived.

    The owner suggests to move to either of these alternatives:

    • https://crates.io/crates/ciborium
    • https://crates.io/crates/minicbor

    Ciborium

    According to the author, this one is compatible with serde_cbor and could thereby be used as a drop-in replacement.

    Minicbor

    This one is, as the name suggests, rather minimalistic. It might be enough for our use case, but we don't really aim for no-std environments and we also don't have to be minimalistic.

    s: Pueue-lib t: technical debt 
    opened by Nukesor 1
  • [Feature] Support windows service setup for `pueued`

    [Feature] Support windows service setup for `pueued`

    First, I was unsure if this would be a bug report or a feature request.

    But as pueued says in the help text:

    -d, --daemonize           If this flag is set, the daemon will start and fork itself into the
                              background. Closing the terminal won't kill the daemon any longer.
                              This should be avoided and rather be properly done using a service
                              manager
    

    It should be easy to set up a service.

    Describe the bug

    Created Windows services time out, because (this is what I assume) pueued misses handling of Windows service events.

    Steps to reproduce the bug

    1. Trying to create a service on Windows 10. I did this the following way, which I found most easy within Powershell:
    $params = @{
        Name = "pueued"
        BinaryPathName = "C:\Users\dailyuse\scoop\apps\pueue\current\pueued.exe"
        DisplayName = "Pueue Service"
        StartupType = "Automatic"
        Description = "Service to manage pueue task management tool"
    }
    
    New-Service @params
    

    Et voilà, this should be it.

    1. But when starting the service with Start-Service pueued it times out.
    2. I assume that is because pueued doesn't handle the Windows service events.

    Expected behaviour

    pueued should be easy to set up as a service.

    Logs/Output

    Start-Service: Service 'Pueue Service (pueued)' cannot be started due to the following error: Cannot start service 'pueued' on computer '.'.
    

    Which is most likely a related error to

    Error 1053: The Service did not respond to the start or control request in a timely fashion
    

    Because I see it timing out in services.msc.

    Additional context

    • Windows 10 Pro 21H2 19044.1865
    • pueue 2.1.0

    Useful crates

    f: Help wanted t: feature s: Daemon o: Windows 
    opened by simonsan 6
  • [BUG] Window process test is flaky

    [BUG] Window process test is flaky

    The Windows CI test suite flakes from time to time.

    It's always the same error. Sadly I don't know much about windows process handling. Any help is much appreciated.

    Here's the Error:

    running 17 tests
    test network::message_handler::clean::tests::clean_normal ... ok
    test network::message_handler::clean::tests::clean_normal_for_all_results ... ok
    test network::message_handler::clean::tests::clean_only_in_selected_group ... ok
    test network::message_handler::clean::tests::clean_only_successful_only_in_selected_group ... ok
    test network::message_handler::remove::tests::normal_remove ... ok
    test network::message_handler::clean::tests::clean_successful_only ... ok
    test network::message_handler::switch::tests::switch_double_dependency ... ok
    test network::message_handler::switch::tests::switch_invalid ... ok
    test network::message_handler::switch::tests::switch_normal ... ok
    test network::message_handler::switch::tests::switch_task_with_dependant ... ok
    test network::message_handler::switch::tests::switch_task_with_itself ... ok
    test network::message_handler::remove::tests::removal_of_dependencies ... ok
    test platform::windows::process_helper::test::test_normal_command_children_are_killed ... ok
    test platform::windows::process_helper::test::test_normal_command_is_killed ... ok
    test platform::windows::process_helper::test::test_shell_command_is_killed ... ok
    test platform::windows::process_helper::test::test_shell_command_children_are_killed ... FAILED
    test platform::windows::process_helper::test::test_spawn_command ... ok
    failures:
    ---- platform::windows::process_helper::test::test_shell_command_children_are_killed stdout ----
    Error: 2 processes were expected. Last process count was 1
    thread 'platform::windows::process_helper::test::test_shell_command_children_are_killed' panicked at 'assertion failed: `(left == right)`
      left: `1`,
     right: `0`: the test returned a termination value with a non-zero status code (1) which indicates a failure', /rustc/fe5b13d681f25ee6474be29d748c65adcd91f69e\library\test\src\lib.rs:186:5
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    failures:
        platform::windows::process_helper::test::test_shell_command_children_are_killed
    test result: FAILED. 16 passed; 1 failed; 0 ignored; 0 measured; 0 filtered out; finished in 52.23s
    error: test failed, to rerun pass '-p pueue --lib'
    Error: The process 'C:\Users\runneradmin\.cargo\bin\cargo.exe' failed with exit code 101
    
    t: bug f: Help wanted o: Windows 
    opened by Nukesor 1
Releases(v3.0.1)
Owner
Arne Beer
Dev and Ops guy. Open-source, commandline and automation enthusiast
Arne Beer
idf-env tool helps set up and manage ESP-IDF installations

idf-env Tool for maintaining ESP-IDF environment. Quick start Install serial drivers for ESP boards on Windows. Execute following command in PowerShel

Espressif Systems 19 Dec 4, 2022
A bash-like Unix shell written in Rust

Cicada Unix Shell Cicada is a simple Unix shell written in Rust. Documents Install cicada Environment Variables Cicada Builtins Completion RC File His

Hugo Wang 921 Dec 28, 2022
A faster way to navigate your filesystem

zoxide A faster way to navigate your filesystem Table of contents Introduction Examples Getting started Step 1: Install zoxide Step 2: Install fzf (op

Ajeet D'Souza 8.7k Jan 8, 2023
gt your desired path with minimal keystrokes

goto (gt) gt is a simple and user-friendly way to jump to your indexed directories. gt is short for "goto", which is basically what you want to do wit

Sylvester Chin 25 Nov 7, 2022
Count your code, quickly.

Tokei (時計) Tokei is a program that displays statistics about your code. Tokei will show the number of files, total lines within those files and code,

null 7.5k Jan 9, 2023
CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path

Move Links CLI utility to move (or rename) your files to a new location and redirect all of its symbolic links, to the new path (or name). Usage execu

Ben Mefteh 18 May 22, 2022
Your project’s nix-env [maintainer=@Profpatsch]

lorri https://github.com/nix-community/lorri lorri is a nix-shell replacement for project development. lorri is based around fast direnv integration f

Nix community projects 442 Jan 1, 2023
📊 Fetch & monitor your server's resource usage through Lua

?? gmsv_serverstat Simple serverside binary module which can expose information about system resource usage to Lua. Installation Download the relevant

William 21 Jul 30, 2022
subd - a place to reward your subscribers from any platform

subd subd's goal is to create a link between the various ways viewers support you as a live content creator, and the interactions that can be triggere

TJ DeVries 37 Jul 6, 2023
🐢 Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands

Atuin replaces your existing shell history with a SQLite database, and records additional context for your commands. Additionally, it provides optional and fully encrypted synchronisation of your history between machines, via an Atuin server.

Ellie Huxtable 4.6k Jan 1, 2023
Calculates a stars position and velocity in the cartesian coordinate system.

SPV Calculates a stars position and velocity in the cartesian coordinate system. Todo Expand the number of available operation Batch processing by tak

Albin Sjögren 11 Feb 18, 2022
Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Workflows The repo for all public Workflows that appear within Warp and within commands.dev. To learn how to create local or repository workflows, see

Warp 369 Jan 2, 2023
Workflows make it easy to browse, search, execute and share commands (or a series of commands)--without needing to leave your terminal.

Workflows The repo for all public Workflows that appear within Warp and within commands.dev. To learn how to create local or repository workflows, see

Warp 227 Jun 1, 2022
Manage your dotfiles and packages with ease. Define your $HOME as Code 💻 🚀 ✨

EnvHub is a simple tool to manage dotfiles and packages accross multiple machines. Written in Rust, internally it uses nix/homebrew/pkgx/devbox to man

Tsiry Sandratraina 8 Oct 27, 2023
Select your JDK anywhere, anytime by single or two commands

JDK-Selector Select your JDK anywhere, anytime by single or two commands This library provides you opportunity to change JDK version instantly by some

null 3 Nov 24, 2022
A mansplainer for man commands, cheeky and rude, use at your own risk

mansplain mansplain is a Command-Line Interface (CLI) tool built in Rust that mansplains a command to you Prerequisites Rust and Cargo installed An Op

Pratik Kanthi 3 Oct 24, 2023
TUI (Text User Interface) - Get Instant feedback for your sh commands

Bashtastic Visualizer TUI (Text User Interface) - Get Instant feedback for your sh commands. Explore and play with your queries ??. The idea of this p

Alfredo Suarez 7 Nov 26, 2023
A nifty commandline tool to manage your workstation.

workstation It's a nifty commandline rust tool to make you sit slightly away from your screen by blacking out the screen if you come too close and loc

Amar Lakshya (desi_tux) 16 May 6, 2022
Easily embed and manage assets for your web application to build standalone-executables. Offers filename hashing, templating and more.

reinda: easily embed and manage assets This library helps you manage your assets (external files) and is mostly intended to be used in web application

Lukas Kalbertodt 23 Jul 15, 2022
A CLI tool to manage your godot-rust projects

ftw A CLI tool to manage your godot-rust project! Table of contents General Information Setup Usage Contact General Information This is a tool to help

Michael Angelo Calimlim 77 Dec 13, 2022