An interactive cheatsheet tool for the command-line

Overview

navi icon Actions Status GitHub release

An interactive cheatsheet tool for the command-line.

Demo

navi allows you to browse through cheatsheets (that you may write yourself or download from maintainers) and execute commands. Suggested values for arguments are dynamically displayed in a list.

Pros

  • it will spare you from knowing CLIs by heart
  • it will spare you from copy-pasting output from intermediate commands
  • it will make you type less
  • it will teach you new one-liners

It uses fzf, skim, or Alfred under the hood and it can be either used as a command or as a shell widget (à la Ctrl-R).

Table of contents

Installation

navi can be installed with the following package managers:

Packaging status

The recommended way to install navi is by running:

brew install navi

If brew isn't available, you can check alternative install instructions.

Usage

There are multiple ways to use navi:

  • by typing navi in the terminal
    • pros: you have access to all possible subcommands and flags
  • as a shell widget for the terminal
    • pros: the shell history is correctly populated (i.e. with the actual command you ran instead of navi) and you can edit the command as you wish before executing it
  • as aliases
  • as a shell scripting tool
  • as an Alfred workflow

In particular, check these instructions if you want to replicate what's shown in the demo above.

Cheatsheet repositories

Running navi for the first time will help you download and manage cheatsheets.

You can also:

Cheatsheet syntax

Cheatsheets are described in .cheat files that look like this:

% git, code

# Change branch
git checkout <branch>

$ branch: git branch | awk '{print $NF}'

The full syntax and examples can be found here.

Customization

You can:

More info

Please run the following command to read more about all possible options:

navi --help

In addition, please check the /docs folder.

Trying out online

If you don't have access to a Unix shell at the moment and you want to live preview navi, head to this playground. It'll start a docker container with instructions for you to install and use the tool. Note: login required.

Similar tools

There are many similar projects out there (beavr, bro, cheat, cheat.sh, cmdmenu, eg, how2, howdoi and tldr, to name a few).

They are excellent projects, but navi remains unique in the following ways:

  • it's natural to write cheatsheets tailored to your needs
  • arguments are neither hardcoded nor a simple template

Etymology

In The Legend of Zelda Ocarina of Time, Navi is a character that provides Link with a variety of clues to help him solve puzzles and progress in his quest.

Comments
  • [fish/bash/zsh]: Placeholder completions missing

    [fish/bash/zsh]: Placeholder completions missing

    Describe the bug The original issue in #419 seems fixed, but I'm missing the placeholders when filling in my commands

    To Reproduce Steps to reproduce the behavior:

    1. navi (completion should contain <placeholder>
    2. Select command
    3. Notice <placeholder>: is missing

    Expected behavior

    • <placeholder>: should appear
    • Number of commands should be consistent (See Additional context)

    Screenshots

    2.12.1

    > ./navi --version
    navi 2.12.1
    > ./navi                                                                                                                                                                             
    ~ normal  < 1/32 +S
    » cal                                normal calendar        cal -B <before> -A <after>  ⠀
    
    # after selecting `cal`
    ~   < 1/1 +S
    »
    

    2.10.0

    > navi --version
    navi 2.10.0
    > navi 
    ~ normal  < 1/26 +S
    » cal                                normal calendar        cal -B <before> -A <after>  ⠀
    
    # after selecting `cal`
    before:   < 0/0 +S
    

    Versions:

    • OS: macOS
    • Shell Version: fish 3.1.2, bash 5.0.18, zsh 5.7.1

    Additional context

    I also noticed

    • 2.12.1 shows 32 commands, completion shows 1/1
    • 2.10.0 shows 26 commands, completion shows 0/0

    maybe related to the bug?

    bug 
    opened by lamchau 27
  • Panic when adding cheats

    Panic when adding cheats

    Describe the bug An error occurs when adding cheats for the first time

    To Reproduce Steps to reproduce the behavior:

    1. execute: brew install denisidoro/tools/navi
    2. execute: navi repo add denistore/cheat
    3. Error
    $ brew install denisidoro/tools/navi
    $ navi repo add denistore/cheat
    Cloning https://github.com/denistore/cheat into /Users/rtoledo/Library/Application Support/navi/cheats/tmp...
    
    thread 'main' panicked at 'failed to clone: unsupported URL protocol; class=Net (12)', src/flows/repo.rs:57:19
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
    

    Expected behavior Cheats should be added

    Versions:

    • OS: macOS 10.15.1 (19B2093)
    • GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin19) Copyright (C) 2007 Free Software Foundation, Inc.
    bug 
    opened by rtoIedo 23
  • Error while trying to install from cargo

    Error while trying to install from cargo

    Describe the bug Error while trying to install from cargo or install script. Both give the same error.

    To Reproduce Just run the required installation code.

    Expected behavior To install it.

    Screenshots

    $ cargo install navi
        Updating crates.io index
      Installing navi v2.17.0
       Compiling libc v0.2.100
       Compiling cfg-if v1.0.0
       Compiling proc-macro2 v1.0.28
       Compiling unicode-xid v0.2.2
       Compiling syn v1.0.75
       Compiling version_check v0.9.3
       Compiling memchr v2.4.1
       Compiling log v0.4.14
       Compiling autocfg v1.0.1
       Compiling ppv-lite86 v0.2.10
       Compiling signal-hook v0.3.9
       Compiling serde_derive v1.0.128
       Compiling scopeguard v1.1.0
       Compiling serde v1.0.128
       Compiling smallvec v1.6.1
       Compiling unicode-segmentation v1.8.0
       Compiling hashbrown v0.11.2
       Compiling bitflags v1.3.2
       Compiling utf8parse v0.1.1
       Compiling regex-syntax v0.6.25
       Compiling lazy_static v1.4.0
       Compiling anyhow v1.0.43
       Compiling either v1.6.1
       Compiling linked-hash-map v0.5.4
       Compiling remove_dir_all v0.5.3
       Compiling unicode-width v0.1.8
       Compiling termcolor v1.1.2
       Compiling same-file v1.0.6
       Compiling dtoa v0.4.8
       Compiling os_str_bytes v3.1.0
       Compiling vec_map v0.8.2
       Compiling strsim v0.10.0
       Compiling instant v0.1.10
       Compiling lock_api v0.4.4
       Compiling proc-macro-error-attr v1.0.4
       Compiling proc-macro-error v1.0.4
       Compiling vte v0.3.3
       Compiling indexmap v1.7.0
       Compiling textwrap v0.14.2
       Compiling yaml-rust v0.4.5
       Compiling walkdir v2.3.2
       Compiling heck v0.3.3
       Compiling strip-ansi-escapes v0.1.0
       Compiling aho-corasick v0.7.18
       Compiling quote v1.0.9
       Compiling getrandom v0.2.3
       Compiling signal-hook-registry v1.4.0
       Compiling mio v0.7.13
       Compiling parking_lot_core v0.8.3
       Compiling atty v0.2.14
       Compiling which v4.2.2
       Compiling dirs-sys-next v0.1.2
       Compiling remove_dir_all v0.7.0
       Compiling rand_core v0.6.3
       Compiling parking_lot v0.11.1
       Compiling regex v1.5.4
       Compiling directories-next v2.0.0
       Compiling rand_chacha v0.3.1
       Compiling signal-hook-mio v0.2.1
       Compiling shellwords v1.1.0
       Compiling rand v0.8.4
       Compiling crossterm v0.20.0
       Compiling tempfile v3.2.0
       Compiling edit v0.1.3
       Compiling thiserror-impl v1.0.26
       Compiling clap_derive v3.0.0-beta.4
       Compiling thiserror v1.0.26
       Compiling clap v3.0.0-beta.4
    error[E0658]: arbitrary expressions in key-value attributes are unstable
     --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-3.0.0-beta.4/src/lib.rs:8:10
      |
    8 | #![doc = include_str!("../README.md")]
      |          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
      |
      = note: see issue #78835 <https://github.com/rust-lang/rust/issues/78835> for more information
    
    error[E0658]: use of unstable library feature 'osstring_ascii'
       --> /home/gca/.cargo/registry/src/github.com-1ecc6299db9ec823/clap-3.0.0-beta.4/src/parse/matches/matched_arg.rs:130:19
        |
    130 |                 v.eq_ignore_ascii_case(val)
        |                   ^^^^^^^^^^^^^^^^^^^^
        |
        = note: see issue #70516 <https://github.com/rust-lang/rust/issues/70516> for more information
    
    error: aborting due to 2 previous errors
    
    For more information about this error, try `rustc --explain E0658`.
    error: could not compile `clap`
    
    To learn more, run the command again with --verbose.
    warning: build failed, waiting for other jobs to finish...
    error: failed to compile `navi v2.17.0`, intermediate artifacts can be found at `/tmp/cargo-installph3cZ6`
    
    Caused by:
      build failed
    

    Versions:

    • OS: Ubuntu 21.04
    • Shell Version: GNU bash, version 5.1.4(1)-release (x86_64-pc-linux-gnu)
    • Cargo Version: 1.51.0

    Additional context Installed cargo via apt-get. Successfully installed other stuff via cargo.

    bug 
    opened by george-gca 19
  • Mixed comments and snippets in search mode

    Mixed comments and snippets in search mode

    Issue Description

    Environment

    • System: Ubuntu18.04
    • Installation method: linuxbrew

    When search a snippet, the comments and commands of all candidate snippet are interleved in a random way. Please see snapshot below :)

    image

    opened by SamuelDSR 18
  • Navi not working with the fish shell

    Navi not working with the fish shell

    Describe the bug When using navi with the fish shell, I get an error where navi is using invalid shell syntax

    To Reproduce Steps to reproduce the behavior:

    1. start a fish shell
    2. navi --path ~/.config/cheats

    Expected behavior Should see a list of cheats from the ~/.config/cheats path

    Screenshots screenshot

    Versions:

    • OS: Arch Linux
    • Shell Version [replace this text with the output of fish, version 3.1.2]

    Additional context https://github.com/denisidoro/navi/blob/6808dccf5c9d87d016734bbffe5779d35aaa70e5/src/cmds/core.rs#L101

    bug 
    opened by itmecho 17
  • Error when downloading the default cheatsheet

    Error when downloading the default cheatsheet

    When running navi after install and selecting the "Download default cheatssheets" will cause the following error:

    Cloning https://github.com/denisidoro/cheats into /Users/<user>/Library/Application Support/navi/cheats/tmp...
    
    Hey listen! Navi encountered a problem.
    Do you think this is a bug? File an issue at https://github.com/denisidoro/navi.
    
    Caused by:
        0: Failed to import cheatsheets from `denisidoro/cheats`
        1: Failed to clone `https://github.com/denisidoro/cheats`
        2: unsupported URL protocol; class=Net (12)
    
    bug 
    opened by Aracki 16
  • $ variables as

    $ variables as "recomendation"

    Is your feature request related to a problem? Please describe.

    in this snippet

    # login to a server and forward to ssh key (dangerous but usefull for bastion hosts)
    ssh -A <user>@<server>
    

    I would like to give just "recommendations" for user.

    This just sets it to whoami

    $ user : whoami 
    

    This opens fzf and let me type something but typing something like root lets navi crash

    $ user : whoami && echo 
    
    thread 'main' panicked at 'byte index 18446744073709551615 is out of bounds of ``', src/libcore/str/mod.rs:2017:9
    note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace.
    

    I also tried

    $ user : whoami && echo --- --print-query
    

    but this resulted in the same error.

    Describe the solution you'd like

    I would like to write this

    $ user : whoami && echo "root" --- --print-query
    

    or

    $ user : whoami --- --print-query --no-select-1
    

    to use whoami and root only as recommendation, so I can type what ever I want.

    new feature 
    opened by mrVanDalo 16
  • fix openssl dependency and introduce travis

    fix openssl dependency and introduce travis

    The openssl dependency is unnecessary. I created a feature dependency for macos targets.

    I also created a travis ci build script to build the project on linux and macos machines to verify if everything is still working.

    @denisidoro to make the travis part work, you have to sign in to travis-ci.org (can do that via github) and enable this project. Everything is already linked properly on the README and crates.io.

    Have a look at my travis builds you can see linux and osx build just fine.

    opened by mrVanDalo 15
  • navi v2.0.3 panics on any input

    navi v2.0.3 panics on any input

    Describe the bug I install navi v2.0.3 via homebrew, and I'm running the fish shell. It looks like it's not finding the cheat files, as any input (git, ls) causes a panic.

    To Reproduce

    1. Install using brew install denisidoro/tools/navi
    2. Run navi
    3. Enter git, press enter.

    Expected behavior Built-in git cheats are resolved.

    Screenshots

    $ brew install denisidoro/tools/navi
    ==> Installing navi from denisidoro/tools
    ==> Downloading https://github.com/denisidoro/navi/releases/download/v2.0.3/navi-x86_64-osx.tar.gz
    Already downloaded: /Users/austinjones/Library/Caches/Homebrew/downloads/cf9715a19022091baf31700a252c6b4051a927200d9466b9e5a540310f6c9195--navi-x86_64-osx.tar.gz
    🍺  /usr/local/Cellar/navi/2.0.3: 28 files, 2.1MB, built in 3 seconds
    $ RUST_BACKTRACE=1 navi                                                               1858ms  Wed Mar 11 15:21:02 2020
    thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', /rustc/f3e1a954d2ead4e2fc197c7da7d71e6c61bad196/src/libcore/macros/mod.rs:15:40
    stack backtrace:
       0: <std::sys_common::backtrace::_print::DisplayBacktrace as core::fmt::Display>::fmt
       1: core::fmt::write
       2: std::io::Write::write_fmt
       3: std::panicking::default_hook::{{closure}}
       4: std::panicking::default_hook
       5: std::panicking::rust_panic_with_hook
       6: rust_begin_unwind
       7: core::panicking::panic_fmt
       8: core::panicking::panic
       9: navi::cmds::core::main
      10: navi::main
      11: std::rt::lang_start::{{closure}}
      12: std::panicking::try::do_call
      13: __rust_maybe_catch_panic
      14: std::rt::lang_start_internal
      15: main
    note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
    

    Versions:

    • OS: macOS Mojave
    • Shell: fish, version 3.1.0
    bug 
    opened by austinjones 15
  • Use custom paths AND the default path

    Use custom paths AND the default path

    I wonder, how can I use the --path option to load the default folder and other folders?

    Something like:

        navi --path '~/.cheats:<default_cheats_folder>'     # uses custom cheats
    

    Is the <default_cheats_folder> available somewhere as a variable we could use?

    new feature 
    opened by aserrallerios 13
  • fish compatibility

    fish compatibility

    Describe the bug In fish, navi works as expected for some variables in commands, while for others, it just inserts query instead of prompting for a selection. It is not clear to me what the discriminating factor is.

    To Reproduce Steps to reproduce the behavior:

    1. Set up navi in fish as described.
    2. Open navi via Ctrl-G.
    3. From the default cheats, select the docker-compose up -d <service_name> cheat that ships with navi.
    4. See that this gets expanded into docker-compose up -d query.

    Expected behavior navi should prompt for a service name.

    Versions:

    • OS: Linux (Gentoo, but shouldn't matter)
    • fish v3.0.2
    bug 
    opened by curio77 12
  • installing on Ubuntu

    installing on Ubuntu

    $ bash <(curl -sL https://raw.githubusercontent.com/denisidoro/navi/master/scripts/install)
    Downloading https://github.com/denisidoro/navi/releases/download/v2.20.1/navi-v2.20.1-x86_64-unknown-linux-musl.tar.gz...
      % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                     Dload  Upload   Total   Spent    Left  Speed
      0     0    0     0    0     0      0      0 --:--:-- --:--:-- --:--:--     0
    100 2005k  100 2005k    0     0  8846k      0 --:--:-- --:--:-- --:--:-- 8846k
    navi
    
    ✔ Finished
    ✔ navi is now available at /home/azureuser/.cargo/bin/navi
    
    To call navi, restart your shell or reload your .bashrc-like config file
    
    Check https://github.com/denisidoro/navi for more info
    
    
    $ source ~/.bashrc
    
    $ navi
    navi was unable to call fzf.
                    Please make sure it's correctly installed.
                    Refer to https://github.com/junegunn/fzf for more info.
    

    then after installing fzf: sudo apt install fzf

    I get this error:

    $ navi
    invalid preview window layout: up:2:nohidden
    invalid preview window layout: up:2:nohidden
    invalid preview window layout: up:2:nohidden
    invalid preview window layout: up:2:nohidden
    invalid preview window layout: up:2:nohidden
    invalid preview window layout: up:2:nohidden
    
    bug 
    opened by monajalal 1
  • stack overflow while executing

    stack overflow while executing "navi"

    Description

    $ ./target/release/navi
    
    thread 'main' has overflowed its stack
    fatal runtime error: stack overflow
    [2]    96826 abort (core dumped)  ./target/release/navi
    

    Reading the core dump, it looks like an infinite recursion on src/commands/core/mod.rs:38:

    #30 0x000055e1546993c7 in navi::commands::core::init (fetcher=...)
        at src/commands/core/mod.rs:18
    #31 0x000055e154699776 in navi::commands::core::init (fetcher=...)
        at src/commands/core/mod.rs:38
    #32 0x000055e154699776 in navi::commands::core::init (fetcher=...)
        at src/commands/core/mod.rs:38
    ...
    #4145 0x000055e154699776 in navi::commands::core::init (fetcher=...) at src/commands/core/mod.rs:38
    #4146 0x000055e15469a25d in navi::commands::core::main () at src/commands/core/mod.rs:71
    #4147 0x000055e154609423 in navi::commands::handle () at src/commands/mod.rs:16
    #4148 0x000055e1545e7b4a in navi::main () at src/bin/main.rs:28
    

    Full backtrace can be found at https://pastebin.com/sL3SN4nR

    Versions:

    ubuntu 20.04 LTS (I think) $ uname -a Linux 5CG0183BJ0 5.15.0-53-generic #59~20.04.1-Ubuntu SMP Thu Oct 20 15:10:22 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux $ zsh --version zsh 5.8 (x86_64-ubuntu-linux-gnu) $ ./target/debug/navi --version navi 2.21.0

    bug 
    opened by souze 3
  • Can change the appearance of navi? For users who have added many memos

    Can change the appearance of navi? For users who have added many memos

    Maybe it would be better if could customize the look (nvai UI) I'll give an example here (sorry, maybe my english is not good.)

    This is the apt file for the navi community

    Snipaste_2022-10-21_18-54-46

    When running ``navi, the interface will display a lot ofaptcode parameters. Although it is possible to make navi only show memo about apt by typingapt```.

    I have a suggestion here

    For example, by combining the tags apt into a column, the top display bar can be customized in height and display the corresponding content (abbreviated content) Snipaste_2022-10-21_19-10-26

    The user will enter the file apt.cheat corresponding to the label apt in the navi interface through the "Enter key", or other custom keys, and display it in the navi interface (complete content) Snipaste_2022-10-21_19-03-42

    The user's operation method is the same as the current one, select up and down keys, and run through the "Enter key". Of course also shell widgets are supported, via ctrl + G. These are the same.

    The advantage of this is that: The user adds many different memos, and has many notes, it will be more clear.

    This can be understood as another new navi appearance Users can choose to turn it on or off in the configuration file.

    navi is a great work in my opinion, 10K stars are really too few!!! Thanks to the navi author and other friends for their contributions. I hope that more and more people pay attention to navi and it will get better and better.

    new feature 
    opened by ghost 1
  • Katacoda Alternative for README.md Documentation

    Katacoda Alternative for README.md Documentation

    Describe the bug The free Katacoda playground is still being referenced in this project's README.md documentation; but, O’Reilly has killed this service: https://www.oreilly.com/online-learning/leveraging-katacoda-technology.html

    To Reproduce Click the this playground link in the README.md section of README.md.

    Expected behavior Katacoda playground for installing and using navi.

    Screenshots Katacoda404

    Versions: All

    Additional context It looks like Killercoda may be trying to do something very similar to what Katacoda was before being acquired by O’Reilly, even including support for importing Katacoda scenarios.

    I have not personally played with Killercoda; it was just the most promising replacement for this use case that I found after sorting through results of a quick Google search for Katacoda alternatives.

    bug 
    opened by jgrussell 1
  • `--tldr` always shows 0/0 results

    `--tldr` always shows 0/0 results

    Describe the bug See title. I receive no error from the tool. I don't know how to troubleshot it.

    To Reproduce

    navi --tldr docker
    

    Expected behavior Show some cheats.

    Versions:

    • OS: macOS
    • Shell Version 3.2.57
    • navi: 2.20.1
    • fzf: 0.33.0
    bug 
    opened by aserrallerios 0
Releases(v2.20.1)
Owner
Denis Isidoro
Software Engineer
Denis Isidoro
Coinlive is an interactive command line tool that displays live cryptocurrency prices.

Coinlive is an interactive command line tool that displays live cryptocurrency prices. It can also display simple historical price charts.

Mayer Analytics 9 Dec 7, 2022
ruborute is an interactive command-line tool to get asphyxia@sdvx gaming data.

ruborute Are you 暴龍天 ?. The ruborute is an interactive command-line tool to get asphyxia@sdvx gaming data. asphyxia-core/plugins: https://github.com/a

RinChanNOW! 9 Sep 28, 2022
Non-interactive nREPL client for shell scripts and command-line

nreplops-tool (nr) nreplops-tool (nr) is a non-interactive nREPL client designed to be used in shell scripts and on the command-line. Early α warning:

Matti Hänninen 3 Jul 1, 2022
A toolkit for building your own interactive command-line tools in Rust

promkit A toolkit for building your own interactive command-line tools in Rust, utilizing crossterm. Getting Started Put the package in your Cargo.tom

null 70 Dec 18, 2022
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
Configurable, extensible, interactive line reader

linefeed linefeed is a configurable, concurrent, extensible, interactive input reader for Unix terminals and Windows console. API Documentation linefe

Murarth 176 Jan 3, 2023
A small, interactive command runner

Dotree is a small interactive command runner. It wants to be a better home for your aliases and bash functions, especially those that you don't use th

Felix G. Knorr 113 Nov 14, 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
Terminal based, feature rich, interactive SQL tool

datafusion-tui (dft) DataFusion-tui provides a feature rich terminal application, built with tui-rs, for using DataFusion (and eventually Ballista). I

null 49 Dec 24, 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
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
Simple Interactive Terminal Todo App in Rust

todo-rs Simple Interactive Terminal Todo App in Rust Quick Start $ cargo run TODO Controls Keys Description k, j Move cursor up and down Shift+K, Shif

Tsoding 56 Dec 8, 2022
A Rust library for building interactive prompts

inquire is a library for building interactive prompts on terminals. Demo Source Usage Put this line in your Cargo.toml, under [dependencies]. inquire

Mikael Mello 426 Dec 26, 2022
An interactive shell environment for exploring the p2panda protocol

An interactive shell environment for exploring the p2panda protocol. Uses a mock node and clients to simulate network logic.

null 4 Dec 12, 2021
Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Native cross-platform full feature terminal-based sequence editor for git interactive rebase.

Tim Oram 1.2k Jan 2, 2023
Requestty - An easy-to-use collection of interactive cli prompts inspired by Inquirer.js.

Requestty requestty (request-tty) is an easy-to-use collection of interactive cli prompts inspired by Inquirer.js. Easy-to-use - The builder API and m

null 160 Dec 28, 2022
Tricking shells into interactive mode when local PTY's are not available

Remote Pseudoterminals Remote Pseudoterminals or "RPTY" is a Rust library which intercepts calls to the Linux kernel's TTY/PTY-related libc functions

null 135 Dec 4, 2022
A simple interactive OSC (Open Sound Control) debugger for terminal

oscd, a simple interactive OSC debugger for the terminal by using nom as a lexer/parser, oscd offers auto type casting and support sending multiple osc arguments.

Karnpapon Boonput 5 Oct 19, 2022
YARI - An interactive debugger for YARA Language

Interactive debugger for the YARA language written in Rust. Debugger directly calls libyara avoiding emulation to get the most accurate results.

Avast 74 Dec 7, 2022