Bartib is an easy to use time tracking tool for the command line.

Related tags

Command-line bartib
Overview

Bartib

Bartib is an easy to use time tracking tool for the command line. It saves a log of all tracked activities as a plaintext file and allows you to create flexible reports.

  1. Tutorial
  2. How To ...
    1. How to install Bartib
    2. How to build Bartib
    3. How to define in which file to save the log of your activities
    4. How to edit or delete tracked activities
    5. How to activate auto completion
  3. Command overview
    1. The essentials
    2. Getting Help
    3. Tracking activities
    4. Reporting and listing activities
    5. Doing other stuff

Tutorial

Alice is not chasing white rabbits any more. She has a real job now with real clients and project managers. Therefore, she has to keep track of how she uses the hours of her working day. See how Alice uses Bartib for this and learn how you can use it, too.

At 8:00 a.m. Alice arrives at the office. She got an email from her project manager who asks her to start working right away on Urgent Task X from Important Project A. So Alice types at the command line:

alice@work: ~ $ bartib start -d "Urgent Task X" -p "Important Project"

And Bartib confirms:

Started activity: "Urgent Task X" (Important Project) at 2021-10-29 08:00

At 8:43 one of her colleagues drops by and they decide to have a coffee. As she cannot bill this time to her customers, Alice stops the running activity in Bartib:

alice@work: ~ $ bartib stop
Stopped activity: "Urgent Task X" (Important Project) started at 2021-10-29 08:00 (43m)

Almost 10 minutes later she is back at her desk and continues work:

alice@work: ~ $ bartib continue
Started activity: "Urgent Task X" (Important Project) at 2021-10-29 08:51

At 10:13 another email arrives: Urgent Task X has to wait! Now More Urgent Task Y from Just Another Project B has to be carried out immediately.

Alice types:

alice@work: ~ $ bartib start -d "More Urgent Task Y" -p "Just Another Project B"
Stopped activity: "Urgent Task X" (Important Project) started at 2021-10-29 09:01 (1h 12m)
Started activity: "More Urgent Task Y" (Just Another Project B) at 2021-10-29 10:13

See how Bartib just stops the running activity when another one starts? No need to stop it manually.

It is a productive morning. After More Urgent Task Y Alice workes on other projects and other tasks, but now it is time for lunch and Alice lets Bartib list all the activities she has tracked today until now:

alice@work: ~ $ bartib list --today

Started Stopped Description        Project                Duration 
08:00   08:43   Urgent Task X      Important Project         43m      
08:51   10:13   Urgent Task X      Important Project      1h 22m      
10:13   10:35   More Urgent Task Y Just Another Project B    22m      
10:35   10:53   Urgent Task X      Important Project         18m      
10:53   11:45   Simple Task Z      Less Important Project    52m       
11:45   12:34   Boring Task XY     Internal Project C        49m    

After her lunch break Alice wants to continue work on More Urgent Task Y. Instead of typing the task description and the project name again, she asks Bartib for a list of all the tasks she has recently worked on:

alice@work: ~ $ bartib last

 #  Description        Project                
[3] More Urgent Task Y Just Another Project B 
[2] Urgent Task X      Important Project      
[1] Simple Task Z      Less Important Project 
[0] Boring Task XY     Internal Project C 

And she instructs Bartib to continue task #3:

alice@work: ~ $ bartib continue 3
Started activity: "More Urgent Task Y" (Just Another Project B) at 2021-10-29 12:52

An exciting day at work continues. As it is a Friday Alice decides to already leave work at shortly after seven. She stops her latest activity and asks Bartib for a report:

alice@work: ~ $ bartib report --today

Important Project................................. 2h 43m
    Another Task xyz..............................    15m
    Important Call with the Client................    35m
    Urgent Task X................................. 1h 53m

Internal Project C................................ 4h 30m
    Another Meeting...............................    45m
    Boring Task XY................................ 1h 15m
    Long Meeting with Everyone from the Department 2h 30m

Just Another Project B............................    45m
    More Urgent Task Y............................    45m

Less Important Project............................ 2h 27m
    Simple Task No. 5............................. 1h 35m
    Simple Task Z.................................    52m

Total............................................. 9h 25m

Alice is happy. This was just another great day at the company and thanks to Bartib tracking her time was a breeze.

Do you want to be as happy as Alice? Use Bartib!

How To ...

How to install Bartib

Simply download a suitable executable from https://github.com/nikolassv/bartib/releases and copy it in some directory that is listed in your PATH (e.g. ~/bin).

How to build Bartib

Bartib is written in rust. You may build it yourself with the help of cargo. Just clone this repository and execute the cargo build command in its main directory:

cargo build --release

How to define in which file to save the log of your activities

You may either specify the path to your log as an extra parameter (--file or -f) to your bartib command:

bartib -f ~/activities.bartib report

Or you may set the environment variable BARTIB_FILE to the path of your log. Just add this line to your .profile file:

export BARTIB_FILE="~/activities.bartib"

If the specified log file does not exist yet Bartib creates it.

How to edit or delete tracked activities

Just open your activitiy log in your favorite text editor to edit or delete former activities. You may even add new activities manually in this file. The format is self explanatory.

Bartib even offers the bartib edit command which opens the log in the editor defined by your EDITOR environment variable. If you are unsure whether your edits are readable by bartib, use the bartib check command. It will inform you about any parsing errors.

How to activate auto completion

Bartib offers a simple auto completion for project names. This saves you from typing out long project names each time you start a new task. Just source the script misc/bartibCompletion.sh in your .bashrc to enable it.

Command overview

All these commands require that you have set the BARTIB_FILE environment variable to the file path of your activity log. Otherwise they require an additional -f/--file parameter between bartib and the subcommand (see above: How to define in which file to save the log of your activities).

The essentials

bartib -h    # get help
bartib start -p "name of the project" -d "description of the activity"    # start a new activity
bartib stop    # stop an activity
bartib list --today    # list all activities of the current day
bartib report --today    # create a report for today

Getting Help

bartib -h    # Print a concise help
bartib start -h    # Print a help for any subcommand

Tracking activities

bartib start -p "The name of the associated project" -d "A description of the activity"    # Start a new activity with a short description and an associated project
bartib start -p "The name of the associated project" -d "A description of the activity" -t 13:45    # Start a new activity at a given time

bartib stop    # Stop the currently running activity
bartib stop -t 14:00    # Stop the currently running activity at a given time

bartib last    # Print a list of the ten most recently used projects and descriptions
bartib last -n 25   # Prints a list of recently used projects and descriptions with more entries

# All numbers used with the following commands refer to the indizees in the list created with `bartib last`
bartib continue 5    # Start an activity with a recently used project and description
bartib continue    # Continue the latest activity
bartib continue 3 -d "Another description"    # Continue activity number 3 but overwrite the description
bartib continue 7 -t 8:15    # Continue activity number 7 but have it started at a given time

bartib cancel    # Cancels a running activity by deleting its entry in the activity log

Reporting and listing activities

bartib report    # create a report of how much time has been spent on which projects and activities
bartib report --today    # create a report for today
bartib report --yesterday    # create a report for yesterday
bartib report --date 2021-09-03    # create a report for a given day
bartib report --from 2021-09-01 --to 2021-09-05    # create a report for a given time range
bartib report --project "The most exciting project"    # create a report for a given project

bartib list    # list all activities grouped by day
bartib list --no_grouping    # list all activities but do not group them by day

bartib list --today    # list todays' activites
bartib list --yesterday    # list yesterdays' activities
bartib list --from 2021-09-01 --to 2021-09-05    # list activities in a given time range
bartib list --date 2021-09-03    # list activities on a given day
bartib list --project "The most exciting project"    # list activities for a given project

Doing other stuff

bartib current    # show currently running activity
bartib projects    # list all projects ever used

bartib edit   # open the activity log in the editor you have defined in your `EDITOR` environment variable
bartib edit -e vim    # open the activity log in a given editor

bartib check    # check your activity log for invalid lines
Comments
  • Add an option to only print current projects

    Add an option to only print current projects

    First of all thanks for the great tool!

    I use oh-my-zsh with a bunch of plugins and I think this will be very nice to see the current running project without having to type bartib current. This helps with remembering that I need to switch projects.

    opened by samoylovfp 5
  • Output the week report in hours instead of in days

    Output the week report in hours instead of in days

    Currently, the week report looks like this:

    project........ 1d 3h 12m
        Task_1    8h 35m
        Task_2   18h 37m
    
    Total....... 1d 3h 12m
    

    To me, a report in hours makes more sense, but maybe it can be just configurable instead of just changing it to hours, with something like --format={days,hours}.

    enhancement 
    opened by tcassaert 2
  • Bartib not initializing log file?

    Bartib not initializing log file?

    $ touch ~/activities.bartib
    $ echo $BARTIB_FILE
    ~/activities.bartib
    $ bartib start -p "proj" -d "act"
    Started activity: "act" (proj) at 2021-11-16 14:22
    Error: Could not write to file: ~/activities.bartib
    
    Caused by:
        No such file or directory (os error 2)
    
    $ which bartib
    /home/username/.cargo/bin/bartib
    

    Context: cloned repository, used cargo install --path .

    opened by DesmondWillowbrook 2
  • Sanity check for activity start- and endtimes

    Sanity check for activity start- and endtimes

    Hello Stranger from the internet,

    with this pull request I propose a sanity check for the start- and endtimes of activities.

    It checks for two things:

    1. The endtime of an activity may not precede the starttime.
    2. An activity may not start before the previous one ended.

    Errors are reported in bartib check. Additionally a warning is printed whenever the list of activies is parsed.

    Big thanks for the project und bis Morgen !

    opened by lukasdietrich 1
  • Improve CLI ergonomics

    Improve CLI ergonomics

    The current output of bartib help start makes it seem like the project and the description are optional, but they aren't. If you try to run bartib start -d "Description", bartib replies with a panic. I had to go to the source code to understand what was happening.

    ❯ bartib start -d "Description"                                    
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /home/italo/.cargo/registry/src/github.com-1ecc6299db9ec823/bartib-1.0.0/src/main.rs:207:58          
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace  
    

    You can fix this by marking the arguments as required on clap, or at least print a nice message explaining the problem.

    bug duplicate 
    opened by oyarsa 1
  • Panic if project flag is not passed to `start`

    Panic if project flag is not passed to `start`

    Please see the output:

    $ RUST_BACKTRACE=full bartib start -d "checking some github stuff"
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src/main.rs:207:58
    stack backtrace:
       0:     0x557ece2b6580 - std::backtrace_rs::backtrace::libunwind::trace::h25e12e0d899beba0
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/../../backtrace/src/backtrace/libunwind.rs:90:5
       1:     0x557ece2b6580 - std::backtrace_rs::backtrace::trace_unsynchronized::h70e61195d6ae3df6
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/../../backtrace/src/backtrace/mod.rs:66:5
       2:     0x557ece2b6580 - std::sys_common::backtrace::_print_fmt::hba93ab80d779695a
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/sys_common/backtrace.rs:67:5
       3:     0x557ece2b6580 - <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt::hf092b5883b4b2e50
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/sys_common/backtrace.rs:46:22
       4:     0x557ece2d275c - core::fmt::write::hf68bc350a8f2f0dc
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/fmt/mod.rs:1078:17
       5:     0x557ece2b38a2 - std::io::Write::write_fmt::hf66811b1bc767436
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/io/mod.rs:1517:15
       6:     0x557ece2b8505 - std::sys_common::backtrace::_print::hd425a11bfe1f20f8
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/sys_common/backtrace.rs:49:5
       7:     0x557ece2b8505 - std::sys_common::backtrace::print::h6d678795c1e61e13
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/sys_common/backtrace.rs:36:9
       8:     0x557ece2b8505 - std::panicking::default_hook::{{closure}}::h78a02a4a0dee5e7e
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:208:50
       9:     0x557ece2b805a - std::panicking::default_hook::h56eb7eda02f355a7
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:225:9
      10:     0x557ece2b8ca1 - std::panicking::rust_panic_with_hook::hb27ea14285131c61
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:591:17
      11:     0x557ece2b87b7 - std::panicking::begin_panic_handler::{{closure}}::hc552fcee62aad17f
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:495:13
      12:     0x557ece2b6a3c - std::sys_common::backtrace::__rust_end_short_backtrace::hb9f0aa9a78e885a0
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/sys_common/backtrace.rs:141:18
      13:     0x557ece2b8749 - rust_begin_unwind
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:493:5
      14:     0x557ece2d1b31 - core::panicking::panic_fmt::h12ac4570ea43d06f
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/panicking.rs:92:14
      15:     0x557ece2d1a7d - core::panicking::panic::h72bd72f6f4a70105
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/panicking.rs:50:5
      16:     0x557ece2146f5 - bartib::main::h6a32311aa284d027
      17:     0x557ece215c33 - std::sys_common::backtrace::__rust_begin_short_backtrace::h0a40a47f68234f03
      18:     0x557ece215c4d - std::rt::lang_start::{{closure}}::h2170525524f8154e
      19:     0x557ece2b90c7 - core::ops::function::impls::<impl core::ops::function::FnOnce<A> for &F>::call_once::h78040f802d89ccdc
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/core/src/ops/function.rs:259:13
      20:     0x557ece2b90c7 - std::panicking::try::do_call::h6853cad536dd09a1
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:379:40
      21:     0x557ece2b90c7 - std::panicking::try::h827495f03a9fbb9a
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panicking.rs:343:19
      22:     0x557ece2b90c7 - std::panic::catch_unwind::h4bdf17571090eb17
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/panic.rs:396:14
      23:     0x557ece2b90c7 - std::rt::lang_start_internal::h2f319c33bb013f29
                                   at /rustc/cb75ad5db02783e8b0222fee363c5f63f7e2cf5b/library/std/src/rt.rs:51:25
      24:     0x557ece214c72 - main
      25:     0x7f3eb733ab75 - __libc_start_main
      26:     0x557ece2106ea - _start
      27:                0x0 - <unknown>
    $ RUST_BACKTRACE=full bartib start -p leisure -d "checking some github stuff"
    Started activity: "checking some github stuff" (leisure) at 2021-11-17 13:52
    $ bartib --version
    bartib 1.0.0
    
    bug duplicate 
    opened by egegunes 1
  • Make start required arguments more explicit

    Make start required arguments more explicit

    Problem Description

    One small papercut while starting to use this tools was what arguments were really required to "start" a new task.

    The current help for bartib start does not show any required arguments or flags:

    bartib start -h
    bartib-start
    starts a new activity
    
    USAGE:
        bartib start [OPTIONS]
    
    FLAGS:
        -h, --help    Prints help information
    
    OPTIONS:
        -d, --description <DESCRIPTION>    the description of the new activity
        -p, --project <PROJECT>            the project to which the new activity belongs
        -t, --time <TIME>                  the time for changing the activity status (HH:MM)
    

    However, when I attempt to use as is, it of course needs some data to actually start an activity:

    bartib start -d "test descr"
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', ...
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    

    Possible Solutions

    Of course, there are multiple ways to help with this. Here are a few I thought of:

    1. make description and project flags explicit through clap args
    2. do input validation in the controller, likely around here: https://github.com/nikolassv/bartib/blob/master/src/controller/manipulation.rs#L29-L33
    3. do input validation in Activity::start https://github.com/nikolassv/bartib/blob/master/src/data/activity.rs#L26
    4. make only project arg required, default description to empty string (or other design related change)

    I'm sure there are other ways but (1) seemed like the easiest so I sent a quick PR.

    Testing

    Validating new args have expected help after cargo build --release

    start command help makes required args more explicit

    ./target/release/bartib start -h
    bartib-start
    starts a new activity
    
    USAGE:
        bartib start [OPTIONS] --description <DESCRIPTION> --project <PROJECT>
    
    FLAGS:
        -h, --help    Prints help information
    
    OPTIONS:
        -d, --description <DESCRIPTION>    the description of the new activity
        -p, --project <PROJECT>            the project to which the new activity belongs
        -t, --time <TIME>                  the time for changing the activity status (HH:MM)
    
    

    continue command args are unchanged

    ./target/release/bartib continue -h
    bartib-continue
    continues a previous activity
    
    USAGE:
        bartib continue [OPTIONS] [NUMBER]
    
    FLAGS:
        -h, --help    Prints help information
    
    OPTIONS:
        -d, --description <DESCRIPTION>    the description of the new activity
        -p, --project <PROJECT>            the project to which the new activity belongs
        -t, --time <TIME>                  the time for changing the activity status (HH:MM)
    
    ARGS:
        <NUMBER>    the number of the activity to continue (see subcommand `last`) [default: 0]
    
    

    Validating required flag shows more helpful error message:

    Error 1: no project provided

    ./target/release/bartib start -d "test"
    error: The following required arguments were not provided:
        --project <PROJECT>
    
    USAGE:
        bartib start [OPTIONS] --description <DESCRIPTION> --project <PROJECT>
    
    For more information try --help
    

    Error 2: no description provided

    ./target/release/bartib start -p "test"
    error: The following required arguments were not provided:
        --description <DESCRIPTION>
    
    USAGE:
        bartib start [OPTIONS] --description <DESCRIPTION> --project <PROJECT>
    
    For more information try --help
    

    Happy case: all args provided

    ./target/release/bartib start -p "test project" -d "test description"
    Stopped activity: "write general SOP for all application levers" (availability lever SOP) started at 2021-11-16 18:17 (05m)
    Started activity: "test description" (test project) at 2021-11-16 18:22
    
    opened by camerondurham 1
  • Documentation for `bartib start --time` is unclear

    Documentation for `bartib start --time` is unclear

    At first I thought --time, in this case, means the target time I wanted to finish the task so I set that to a time in future. Bartib (incorrectly?) accepted that. Then I stopped the task before that start time only to end up with end time earlier than start time.

    opened by rushmorem 1
  • Publishing bartib at crates.io

    Publishing bartib at crates.io

    Hey, could you please publish this at crates.io so installing it is as easy as cargo install bartib. Updating with cargo-update will be as easy as cargo install-update -a.

    Thank you

    opened by simonsan 1
  • Hello, I'm trying to create bartib file and I get this error.

    Hello, I'm trying to create bartib file and I get this error.

    bartib -f ~/Users/username/bartib_logger.bartib report
    Error: Could not read from file: /Users/username/bartib_logger.bartib
    
    Caused by:
        No such file or directory (os error 2)
    
    1. I have created bartib_logger.bartib file in the home directory
    opened by hanylovescode 1
  • OS Error 5

    OS Error 5

    Hi, I recently downloaded it from crates.io. I created the file and added the file directory to the BARTIB_FILE env variable. CMD gave me an OS Error 5 when executing

    opened by Rxann 1
  • Missing sub-commands

    Missing sub-commands

    Hello everyone,

    First of all thank you very much for making such a nice and simple time tracker. I only discovered bartib two days ago and have been loving it ever since. Although, it is overall quite a robust piece of software, I find myself missing two sub-commands. The first one would be an add command allowing the user to add a time entry by specifying a start and stop time. The second one is an export feature which outputs the activity log in either JSON format or CSV format. Thank you very much in advance and keep up the awesome work.

    enhancement 
    opened by davinellulinvega 2
Releases(v1.0.1)
Owner
Nikolas Schmidt-Voigt
Nikolas Schmidt-Voigt
Small command-line tool to switch monitor inputs from command line

swmon Small command-line tool to switch monitor inputs from command line Installation git clone https://github.com/cr1901/swmon cargo install --path .

William D. Jones 5 Aug 20, 2022
belt is a command line app that can show your time from a list of selected time zones

A CLI app to show your time from a list of selected time zones, and a rust lib to parse dates in string formats that are commonly used.

Rollie Ma 23 Nov 4, 2022
Provide CRUD CLI for Moco Activities with Jira Cloud Sync Option for faster time tracking.

Moco CLI Provide CRUD CLI for Moco Activities with Jira Cloud Sync Option for faster time tracking. Available commands Login Jira Must be called befor

Emanuel Vollmer 7 Nov 18, 2022
A robust, customizable, blazingly-fast, efficient and easy-to-use command line application to uwu'ify your text!

uwuifyy A robust, customizable, blazingly-fast, efficient and easy-to-use command line application to uwu'ify your text! Logo Credits: Jade Nelson Tab

Hamothy 43 Dec 12, 2022
verilot (verifiable lottery) is a command line tool for running and verifying one-time lotteries.

verilot verilot (verifiable lottery) is a command line tool for running and verifying one-time lotteries. Install Install Rust and Cargo with Rustup.

Shelby Doolittle 9 Oct 10, 2022
⌚ A command-line tool (and library) for the rusty Swatch Internet Time.

⌚ A command-line tool (and library) for the rusty Swatch Internet Time. Comes with XBar/Swiftbar support.

Gil Desmarais 4 Jul 18, 2022
A tool to use the webeep platform of the Politecnico di Milano directly from the command line.

webeep-cli A tool to use the WeBeep platform of the Politecnico di Milano directly from the command line. Features Browse the course folders as if the

Simone Orlando 9 Apr 8, 2022
Koi is a simple tool built to let you use ChatGPT through the command line

Koi is a simple tool built to let you use ChatGPT through the command line. It adds the ability to let ChatGPT run commands on your computer in order to help you out, or to help you out with complicated tasks.

Shivam Sharma 9 Mar 28, 2023
Pink is a command-line tool inspired by the Unix man command.

Pink is a command-line tool inspired by the Unix man command. It displays custom-formatted text pages in the terminal using a subset of HTML-like tags.

null 3 Nov 2, 2023
Call is an easy-to-use command tools for remote development.

Call is an easy-to-use command tools for remote development. It helps you to build remote development easily and elegant. It can work with makefile and justfile.

null 21 Dec 14, 2022
SKYULL is a command-line interface (CLI) in development that creates REST API project structure templates with the aim of making it easy and fast to start a new project.

SKYULL is a command-line interface (CLI) in development that creates REST API project structure templates with the aim of making it easy and fast to start a new project. With just a few primary configurations, such as project name, you can get started quickly.

Gabriel Michaliszen 4 May 9, 2023
Real-time stock tickers from the command-line. Written in Rust.

ticker-rs Real-time stock tickers from the command-line written in Rust. CLI tool using the Yahoo Finance API as a data source. It features colored ou

Patrick Stadler 4 Nov 17, 2022
A command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects.

CCake CCake is a command line tool written in Rust and designed to be a modern build tool + package manager for C/C++ projects. Goals To be easily und

Boston Vanseghi 4 Oct 24, 2022
Stall tracking for Python's GIL and Trio tasks

Perpetuo perpetuo, verb: To cause to continue uninterruptedly, to proceed with continually Perpetuo is a stall tracker for Python. Specifically, it ca

Nathaniel J. Smith 10 Apr 29, 2023
A plain-text Issue and PR tracking system

Markrequests A plain-text Issue and PR tracking system. An example of a file to track these is in prs/example.md Rationale I am unsatisfied with the c

Tristram Oaten 11 Dec 11, 2023
A system clipboard command line tools which inspired by pbcopy & pbpaste but better to use.

rclip A command line tool which supports copy a file contents to the system clipboard or copy the contents of the system clipboard to a file. Install

yahaa 3 May 30, 2022
🧠 A command-line utility for switching git branches more easily. Switch branches interactively or use a fuzzy search to find that long-forgotten branch name.

git-smart-checkout A git command extension for switching git branches more efficiently. About Interactively switch branches or fuzzy search for that f

Cezar Craciun 51 Dec 29, 2022
command line tools for coprolite research (paleontology and archaeology): estimate the producer's body mass based on coprolite diameter by the use of regression models

OVERVIEW OF COPROSIZE coprosize employs power, exponential and cubic regression models allowing to estimate the producer's body mass based on coprolit

Piotr Bajdek 7 Nov 25, 2022
Command-line HTTP client for sending a POST request to specified URI on each stdin line.

line2httppost Simple tool to read lines from stdin and post each line as separate POST request to a specified URL (TCP connection is reused though). G

Vitaly Shukela 3 Jan 3, 2023