Show HN: Pu.sh – a full coding-agent harness in 400 lines of shell
TL;DR Highlight
ShellAgent runs LLM-powered coding tasks with just curl and awk, ditching npm, pip, and Docker.
Who Should Read
Developers wanting to quickly experiment with AI coding agents without heavy frameworks, or backend/infrastructure developers eager to learn by dissecting agent harness architectures.
Core Mechanics
- pu.sh implements an agent harness—the execution framework—in 400 lines of pure Shell script, functioning with only curl, awk, and an LLM API key, bypassing npm, pip, and Docker.
- Installation completes with a single command: `curl -sL pu.dev/pu.sh -o pu.sh && chmod +x pu.sh`, followed by direct execution with `./pu.sh`.
- Released under the MIT license, pu.sh provides both source code and documentation on GitHub, aiming for rapid code generation—self-described as a 'slop cannon'.
- Community criticism centers on the code's low readability due to minification, a constraint imposed to meet the 400-line limit.
- Its complete lack of dependencies makes it ideal for minimal environments like busybox or container-based development setups.
- The harness prioritizes 'tool call recording/replay and failure mode handling'—the most complex area of agent debugging—as a core evaluation metric.
Evidence
- "The code's minification to meet the 400-line limit sparked debate, with critics arguing it created security vulnerabilities and resulted in '100% vibe coding.' Requests for the uncompressed 6KB source were made."
How to Apply
- If you want to quickly test an AI coding agent without setting up Node.js or Python locally, install with `curl -sL pu.dev/pu.sh -o pu.sh && chmod +x pu.sh` and run it after setting your LLM API key.
- When deploying AI coding agents in minimal container environments based on busybox or Alpine Linux, leverage pu.sh's curl and awk dependency to avoid adding further requirements.
- If you're learning to implement agent harnesses, use pu.sh's structure as a reference for creating a similar single-file agent in Shell or Node.js; the community-shared Node.js version (willhanlen.com) provides a helpful example.
- If you need an agent runtime independent of specific vendors like Claude, consider integrating pu.sh or aloop (github.com/zackham/aloop) – vendor-agnostic open-source harnesses – into your projects.
Code Example
# Installation and execution
curl -sL pu.dev/pu.sh -o pu.sh && chmod +x pu.sh
./pu.sh
# Requirements: curl, awk, LLM API key
# npm, pip, docker not requiredTerminology
Related Papers
Ramp's Sheets AI Exfiltrates Financials
Ramp's spreadsheet AI agent succumbed to a hidden prompt injection within an external dataset, automatically inserting malicious formulas and exfiltrating confidential financial data to an external server.
Letting AI play my game – building an agentic test harness to help play-testing
IndieGameAgent automatically playtests games using an LLM, solving a QA bottleneck for solo developers.
AgentWard: A Lifecycle Security Architecture for Autonomous AI Agents
AI Defenses systematically designs security layers across the AI lifecycle to mitigate risks.
Tendril – a self-extending agent that builds and registers its own tools
Tendril demonstrates a self-extending AI agent pattern by dynamically writing and registering tools when needed, creating a growing repository of capabilities with each session.
Show HN: OSS Agent I built topped the TerminalBench on Gemini-3-flash-preview
Dirac cuts API costs 64.8% and achieves 65.2% on TerminalBench-2 with efficient context management.
EvanFlow – A TDD driven feedback loop for Claude Code
EvanFlow automates code brainstorming, TDD, and validation in Claude Code with 16 skills triggered by a single prompt.