ynqa/sig has 774 GitHub stars and 14 forks. Star changes are not measured yet. Last checked 2026-11-13 23:14 UTC. Last push 2026-10-24.
What you can do
- sig allows users to interactively search through (streaming) data, updating results in real-time.
- If --cmd is specified instread of piping data to sig, the command will be executed on initial and retries.
- This feature is designed to address the issue where data streams past while the user is fine-tuning the search criteria. In other words, even if the data has already passed, executing the command again allows the retrieval of the data for re-evaluation.
- In archived mode, since there is no seeking capability for streaming data received through a pipe, it is not possible to search backwards without exiting the process. Therefore, in sig, the latest N entries of streaming data are saved, and it is possible to switch to a mode where you can grep through these N entries based on key inputs at any given moment.
Crecimiento de estrellas medido
- in 24h
- Recopilando historial
- in 7 days
- Recopilando historial
- in 15 days
- Recopilando historial
- in 1 month
- Recopilando historial
Cambios netos en períodos que se solapan, no totales diarios. Los datos no disponibles se dejan en blanco. Las estrellas indican interés, no calidad.
Acerca de
Interactive grep (for streaming)
Herramientas de desarrolloREADME.md
Originalsig
Interactive grep
![]() |
![]() |
|---|
Features
- Interactive grep (for streaming)
- sig allows users to interactively search through (streaming) data, updating results in real-time.
- Re-execute command
- If
--cmdis specified instread of piping data to sig, the command will be executed on initial and retries. - This feature is designed to address the issue where data streams past while the user is fine-tuning the search criteria. In other words, even if the data has already passed, executing the command again allows the retrieval of the data for re-evaluation.
- If
- Archived mode
- In archived mode, since there is no seeking capability for streaming data received through a pipe, it is not possible to search backwards without exiting the process. Therefore, in sig, the latest N entries of streaming data are saved, and it is possible to switch to a mode where you can grep through these N entries based on key inputs at any given moment.
- For static data such as files, sig automatically switches
to archived mode when the input reaches EOF.
- like ugrep with
-Qoption.
- like ugrep with
Installation
Homebrew
brew install ynqa/tap/sigrs
Cargo
cargo install sigrs
X-CMD
If you're an x-cmd user, you can install it with the following command:
x install sig
Arch Linux
pacman -S sig
Nix (flakes)
Add it as an input to your flake:
inputs = {
sig.url = 'github:ynqa/sig/<optional-ref>'
}
Create a shell with it:
nix shell github:ynqa/sig
Or run it directly:
cat README.md | nix run github:ynqa/sig
Nix (classic)
Fetch the source and use it, e.g. in your shell:
let
# At the time of writing this, pkgs need to be unstable for the package to build properly
# (requires Rust 1.74, stable has 1.73)
pkgs = import <nixpkgs-unstable> {};
sig = pkgs.callPackage (pkgs.fetchFromGitHub {
owner = "ynqa";
repo = "sig";
rev = "<revision, e.g. master/v0.1.0/etc.>";
hash = ""; # Build first, put proper hash in place
}) {};
in
pkgs.mkShell {
packages = [sig];
}
Examples
stern --context kind-kind etcd |& sig
# or
sig --cmd "stern --context kind-kind etcd" # this is able to retry command by ctrl+r.
# or static input (switches to archived view after EOF)
cat README.md |& sig
Keymap
| Key | Action |
|---|---|
| Ctrl + C | Exit sig |
| Ctrl + R | Retry command if --cmd is specified |
| Ctrl + S | Pause/Resume stream ingestion |
| Ctrl + F | Enter Archived mode |
| ← | Move the cursor one character to the left |
| → | Move the cursor one character to the right |
| Ctrl + A | Move the cursor to the start of the filter |
| Ctrl + E | Move the cursor to the end of the filter |
| Backspace | Delete a character of filter at the cursor position |
| Ctrl + U | Delete all characters of filter |
(Archived mode)
| Key | Action |
|---|---|
| Ctrl + C | Exit Archived mode |
| ← | Move the cursor one character to the left |
| → | Move the cursor one character to the right |
| Ctrl + A | Move the cursor to the start of the filter |
| Ctrl + E | Move the cursor to the end of the filter |
| Backspace | Delete a character of filter at the cursor position |
| Ctrl + U | Delete all characters of filter |
Usage
Interactive grep (for streaming)
Usage: sig [OPTIONS]
Examples:
$ stern --context kind-kind etcd |& sig
Or the method to retry command by pressing ctrl+r:
$ sig --cmd "stern --context kind-kind etcd"
Static input (switches to archived view after EOF):
$ cat README.md |& sig
Options:
--retrieval-timeout <RETRIEVAL_TIMEOUT_MILLIS>
Timeout to read a next line from the stream in milliseconds. [default: 10]
--render-interval <RENDER_INTERVAL_MILLIS>
Interval to render a line in milliseconds.
-q, --queue-capacity <QUEUE_CAPACITY>
Queue capacity to store lines. [default: 1000]
-i, --ignore-case
Case insensitive search.
--cmd <CMD>
Command to execute on initial and retries.
-Q, --query <QUERY>
Initial query.
-c, --config <CONFIG_FILE>
Path to the configuration file.
-h, --help
Print help (see more with '--help')
-V, --version
Print version
Configuration
The following settings are available in config.toml
# Style for matched substrings
highlight_style = "fg=red"
[streaming.editor]
# Query prompt while streaming
prefix = "❯❯ "
prefix_style = "fg=darkgreen"
active_char_style = "bg=darkcyan"
inactive_char_style = ""
# lines =
[streaming.keybinds]
exit = ["Ctrl+C"]
goto_archived = ["Ctrl+F"]
retry = ["Ctrl+R"]
toggle_pause = ["Ctrl+S"]
[streaming.keybinds.editor]
backward = ["Left"]
forward = ["Right"]
move_to_head = ["Ctrl+A"]
move_to_tail = ["Ctrl+E"]
erase = ["Backspace"]
erase_all = ["Ctrl+U"]
[archived.editor]
# Query prompt in archived mode
prefix = "❯❯❯ "
prefix_style = "fg=darkblue"
active_char_style = "bg=darkcyan"
inactive_char_style = ""
# lines =
[archived.listbox]
cursor = "❯ "
# active_item_style =
# inactive_item_style =
# lines =
[archived.keybinds]
exit = ["Ctrl+C"]
retry = ["Ctrl+R"]
up = ["Up", "ScrollUp"]
down = ["Down", "ScrollDown"]
[archived.keybinds.editor]
backward = ["Left"]
forward = ["Right"]
move_to_head = ["Ctrl+A"]
move_to_tail = ["Ctrl+E"]
erase = ["Backspace"]
erase_all = ["Ctrl+U"]
Explorar proyectos relacionados
codecrafters-io/build-your-own-x
Domina la programación recreando desde cero tus tecnologías favoritas.
562,340 estrellaspublic-apis/public-apis
Una lista colectiva de API gratuitas
498,782 estrellasmorluto/rea
Ingeniería inversa de cualquier cosa con agentes, desde el comportamiento de la aplicación hasta los binarios nativos.
457,586 estrellasopenclaw/openclaw
La IA que de verdad hace las cosas. Cualquier sistema operativo y cualquier plataforma. Al estilo langosta. 🦞
394,396 estrellas
