| Crates.io | epiq |
| lib.rs | epiq |
| version | 0.1.0 |
| created_at | 2025-03-20 02:24:55.158302+00 |
| updated_at | 2025-03-20 02:24:55.158302+00 |
| description | Laboratory for pipeline construction with feedback |
| homepage | |
| repository | https://github.com/ynqa/empiriqa |
| max_upload_size | |
| id | 1598816 |
| size | 133,191 |
Laboratory for pipeline construction with feedback.

empiriqa (command name is epiq) is a tool for interactively manipulating
UNIX pipelines |. You can individually edit, add, delete, and toggle
disable/enable for each pipeline stage. It allows you to easily and
efficiently experiment with data processing and analysis using commands.
Additionally, you can execute commands with continuous output streams like tail -f.
empiriqa can be considered a generalization of tools like jnv (interactive JSON filter using jq) and sig (interactive grep for streaming). While jnv focuses on JSON data manipulation and sig specializes in grep searches, empiriqa extends the interactive approach to all UNIX pipeline operations, providing a more versatile platform for command-line experimentation.
brew install ynqa/tap/epiq
cargo install epiq
# Or from source (at empiriqa root)
cargo install --path .
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/ynqa/empiriqa/releases/download/v0.1.0/epiq-installer.sh | sh
% epiq -h
Laboratory for pipeline construction with feedback
Usage: epiq [OPTIONS]
Options:
--output-queue-size <OUTPUT_QUEUE_SIZE>
Set the size of the output queue [default: 1000]
--event-operate-interval <EVENT_OPERATE_INTERVAL>
Event processing aggregation interval (milliseconds) [default: 32]
--output-render-interval <OUTPUT_RENDER_INTERVAL>
Output rendering interval (milliseconds) [default: 10]
-h, --help
Print help (see more with '--help')
-V, --version
Print version
| Key | Function |
|---|---|
Enter |
Execute command |
Ctrl+C |
Exit |
Esc |
Toggle mouse capture |
Ctrl+B |
Add new pipeline stage |
Ctrl+D |
Delete current pipeline stage |
Ctrl+X |
Disable/Enable current stage |
↑/↓ |
Move between stages |
←/→ |
Move cursor left/right |
Ctrl+A |
Move to beginning of line |
Ctrl+E |
Move to end of line |
Alt+B |
Move to previous word |
Alt+F |
Move to next word |
Backspace |
Delete character |
Ctrl+U |
Clear line |
Ctrl+W |
Delete previous word |
Alt+D |
Delete next word |
|&, both stdout and stderr are automatically processedBy default, empiriqa captures all mouse events to provide output scrolling functionality. This specification means that operations such as text selection that are normally performed in the terminal are absorbed by the application and become unavailable.
If you want to select and copy text in the terminal, follow these steps:
Note: While mouse capture is disabled, you cannot scroll the output.
Technical background:
crossterm, and the feature to selectively disable specific
mouse events is being discussed in the following issue
By pressing Ctrl+X, you can toggle the currently selected command stage between disabled and enabled. Disabled stages are skipped during pipeline execution. This is useful when you want to temporarily exclude specific commands for testing.
Disabled stages are displayed with a strikethrough, making them visually distinguishable.
When you resize the terminal window, the following automatic adjustments are made:
After launching empiriqa, commands that require keyboard interaction (such as
python and other interactive commands that require input) cannot be executed.
This is because empiriqa itself processes keyboard inputs, so commands that
require interactive input in any pipeline stage will not function properly.
This project is licensed under MIT. See LICENSE for details.