Skip to content

Runs commands and outputs structured text for humans and LLMs.

License

Notifications You must be signed in to change notification settings

hashbangcore/larry

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Larry

Larry is a small Unix-style wrapper that executes commands and captures pipeline input emitting a structured, concatenated text output designed to be easily consumed by humans and Large Language Models (LLMs).

Its goal is observability, not orchestration.

Larry does not try to infer, reconstruct, or guess commands it cannot know. It prints exactly what it receives and executes.


What Larry Does

Larry accepts:

  • Standard input (stdin) from a pipeline
  • One or more commands passed as arguments

It then:

  1. Captures any incoming stdin
  2. Executes each provided command
  3. Produces a single, concatenated text stream

This makes Larry ideal for:

  • System inspection
  • Diagnostics
  • Tooling pipelines
  • LLM-assisted analysis

Output Format

Larry emits a simple, explicit output format:

[stdin output]
<text received from stdin>

[command]
<command string>
[output]
<command stdout + stderr>

Examples

Basic command execution

larry "pwd" "whoami"

Output:

[command]
pwd
[output]
/home/user/work/larry

[command]
whoami
[output]
user

Using stdin (pipeline input)

ls -a | larry pwd "echo $USER"

Output:

[stdin output]
./
../
.git/
Cargo.toml
src/

[command]
pwd
[output]
/home/user/work/larry

[command]
echo user
[output]
user

LLM-assisted diagnostics

lsblk | larry df free | llm "analyze the system state"

Larry outputs structure; the LLM interprets.


Why Larry Exists

The idea for this wrapper emerged while I was working on netero.

During that project, I needed LLMs to be able to observe the output of multiple commands, especially when they are chained together in pipelines. I initially explored similar solutions using aliases and Bash functions, which only solved the problem partially.

However, beyond that functional need, I also had another goal: learning Rust. Separating this functionality into a small, standalone tool turned out to be a good excuse to implement it in Rust, while keeping the design simple and reusable.

License

BSD 0-Clause

About

Runs commands and outputs structured text for humans and LLMs.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages