Parallel LLM pipe filter. Reads text lines from stdin, sends each to an LLM in parallel, writes results to stdout preserving input order.
cat items.txt | fzp "Classify into: bug, feature, question"
fzp targets 1-shot batch tasks: classify, extract, translate, normalize. It deliberately stays small — multi-turn conversations, agent loops, and tool calling are out of scope. For those, reach for a Claude / OpenAI / Gemini SDK directly.
cargo install fzp
fzp uses any OpenAI-compatible API. It's designed for lightweight, fast models.
fzp init
This creates ~/.config/fzp/config.toml with your API key, model, and endpoint.
To avoid storing the key in plaintext, replace api_key with api_key_command,
whose stdout is used as the key:
api_key_command = "pass show fzp/openrouter"
api_key takes precedence when both are set.
# Inline prompt
<data> | fzp "Your prompt here"
# Named preset
<data> | fzp -p classify -v labels="bug,feature,question"
# Preset + extra instruction
<data> | fzp -p summarize "Respond in Japanese"
| Flag | Description | Default |
|---|---|---|
-p NAME | Preset name | - |
-v KEY=VALUE | Template variable (repeatable) | - |
-m MODEL | Model override | from config.toml |
-j N | Concurrency | 64 |
--cache | Dedup identical input lines (skip duplicate API calls) | off |
--list | List available presets | - |
| Preset | Description | Variables |
|---|---|---|
classify | Assign one label from a set | labels |
summarize | One-sentence summary | - |
translate | Translate text | lang |
normalize | Extract fields as compact JSON | fields |
filter | Output 1 (match) or 0 (no match) | condition |
# Classify and count
cat items.txt | fzp -p classify -v labels="bug,feature,question" | sort | uniq -c
# Filter
paste items.txt <(cat items.txt | fzp -p filter -v condition="security-related") \
| awk -F'\t' '$2 == "1"' | cut -f1
# Normalize to JSON
cat messages.txt | fzp -p normalize -v fields="name,topic,urgency"
Add presets to ~/.config/fzp/config.toml:
[prompt.my-preset]
template = "Your prompt with {{var}}"
Attach a JSON Schema to constrain the model's output (provider-dependent enforcement; OpenRouter routes to providers that honor it):
[prompt.extract]
template = "Extract name and age."
[prompt.extract.output_schema]
type = "object"
required = ["name", "age"]
additionalProperties = false
[prompt.extract.output_schema.properties.name]
type = "string"
[prompt.extract.output_schema.properties.age]
type = "integer"
fzp is also available as a Claude Code plugin. Add it to your project:
claude mcp add-plugin github.com/rail44/fzp
MIT
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub rail44/fzp --plugin fzpForward Claude Code lifecycle (Stop / Notification / SessionEnd) to the picoswarm daemon as agent events.
Offload cheap AI tasks (classification, summarization, extraction, follow-ups, small-model chat) to ZeroGPU small/nano models.
Batched file operations for autonomous Claude Code runs. Collapses N reads/greps/globs into one Bash round-trip. Includes session-start prompt injection and an opt-in enforcement mode that blocks competing tools.
Intelligent model routing for Claude Code - routes queries to optimal Claude model (Haiku/Sonnet/Opus) based on complexity, with persistent knowledge system, context forking, and multi-turn awareness
Hot-reloadable versioned prompts with easy tools for prompt engineering, chain workflows, quality gates. Symbolic syntax: >>prompt --> >>chain @framework :: 'gate'
Open-source, local-first Claude Code plugin for token reduction, context compression, and cost optimization using hybrid RAG retrieval (BM25 + vector search), reranking, AST-aware chunking, and compact context packets.
Faithful information summarization with fidelity preservation, structured output, and anti-hallucination methodology. Provides skills for file, URL, and image summarization; agents for autonomous summarization tasks; and hooks for validating agent output structure.