nano-agent
Watched how we used GPT-5 and Claude Code with nano-agents here. What? A MCP Server for experimental, small scale engineering agents with multi-provider LLM support. Why?
See what you can do with the Agentic Drop Zone in this video. Automated file processing system that monitors directories and triggers agents (Claude Code, Gemini CLI, Codex CLI) when files are dropped.
Repo: disler/agentic-drop-zones
What's inside
See what you can do with the Agentic Drop Zone in this video.
Automated file processing system that monitors directories and triggers agents (Claude Code, Gemini CLI, Codex CLI) when files are dropped.
sfs_agentic_drop_zone.pydrops.yamlgraph LR
subgraph "Agentic Drop Zone System"
A[File Dropped] --> B[Watchdog Detects Event]
B --> C{Matches Pattern?}
C -->|Yes| D[Load Prompt Template]
C -->|No| E[Ignore]
D --> F[Replace FILE_PATH Variable]
F --> G{Select Agent}
G -->|claude_code| H[Claude Code<br/>Full tool access<br/>MCP servers]
G -->|gemini_cli| I[Gemini CLI<br/>Google AI<br/>]
G -->|codex_cli| J[Codex CLI<br/>OpenAI<br/>unimplemented]
H --> K[Stream Response]
I --> K
J --> K
K --> L[Display in Console]
L --> B
end
# Install uv (if not already installed)
curl -LsSf https://astral.sh/uv/install.sh | sh
# Setup environment variables (at least Claude Code API key)
export ANTHROPIC_API_KEY="your-claude-api-key"
export CLAUDE_CODE_PATH="path-to-claude-cli" # default to claude, may need to run which claude to find the path
# Run with uv
uv run sfs_agentic_drop_zone.py
# Drag and drop (copy to reuse) files from example_input_files folder into the drop zone directories
cp example_input_files/echo.txt agentic_drop_zone/echo_zone/
cp .mcp.json.sample .mcp.json and edit the file with your API keyscp .gemini/settings.json.sample .gemini/settings.json and edit the file with your API keys~/.codex/config.toml (untested)IMPORTANT: Agents are given complete control over your system with dangerous execution capabilities. Agent permissions are as follows:
bypassPermissions mode, which allows all tools without promptingyolo flag with the --sandbox flag, which auto-approves all actions but prevents moving outside of the sandbox directoryBy using this system, you acknowledge the risks and take full responsibility for any actions performed by the agents.
drop_zones:
- name: "Image Generation Drop Zone"
file_patterns: ["*.txt", "*.md"] # File types to watch
reusable_prompt: ".claude/commands/create_image.md" # Prompt template
zone_dirs: ["generate_images_zone"] # Directories to monitor
events: ["created"] # Trigger on file creation
agent: "claude_code" # Agent type
model: "sonnet" # Claude model
mcp_server_file: ".mcp.json" # MCP tools config (optional)
create_zone_dir_if_not_exists: true # Auto-create directories
The system supports multiple AI agents with different capabilities:
sonnet, opus, haikugemini-2.5-pro (default), gemini-2.5-flash--yolo (auto-approve), --sandbox (sandboxing)gpt-5See drops.yaml for agent setup:
- name: "Claude Zone"
agent: "claude_code"
model: "sonnet"
mcp_server_file: ".mcp.json" # specify this or it won't use MCP tools
- name: "Gemini Zone"
agent: "gemini_cli"
model: "gemini-2.5-pro"
Uses ClaudeSDKClient with streaming responses:
async with ClaudeSDKClient(options=ClaudeCodeOptions(
permission_mode="bypassPermissions",
model="sonnet",
mcp_servers=".mcp.json" # Optional MCP tools
)) as client:
await client.query(prompt)
async for message in client.receive_response():
# Stream responses in Rich panels
The system comes with several pre-configured workflows. Each requires specific setup and environment variables:
Directory: generate_images_zone/
File Types: *.txt, *.md
Purpose: Generate images from text prompts using Replicate AI models
Requirements:
REPLICATE_API_TOKEN (required).mcp.json (copy from .mcp.json.sample)Usage: Drop a text file containing image prompts. The system will:
Directory: edit_images_zone/
File Types: *.txt, *.md, *.json
Purpose: Edit existing images using AI models
Requirements:
REPLICATE_API_TOKEN (required).mcp.jsonUsage: Drop files containing image paths/URLs and editing instructions.
Directory: training_data_zone/
File Types: *.csv, *.jsonl (JSON Lines format)
Purpose: Analyze data patterns and generate synthetic training data
Requirements:
Usage: Drop data files to:
Optimization: Uses bash append operations to handle large files efficiently
Directory: morning_debrief_zone/
File Types: *.mp3, *.wav, *.m4a, *.flac, *.ogg, *.aac, *.mp4
Purpose: Transcribe morning debrief audio recordings and analyze content for engineering ideas and priorities
Requirements:
uv tool install openai-whisperUsage: Drop audio files to:
Output: Generates markdown debrief files with comprehensive analysis in morning_debrief_zone/debrief_output/<date_time>/
zone_dirs should be a single directory (zone_dir), and this should be passed into each prompt as a prompt variable (## Variables) and used to create the output directory. Right now it's static in the respective prompts.Gemini CLI streaming output to be more readable and less line by line based. They don't have an SDK, so we're using the CLI.Learn to code with AI with foundational Principles of AI Coding
Follow the IndyDevDan youtube channel for more Agentic Coding tips and tricks.
.claude/
commands/
create_image.md
echo.md
edit_image.md
finance_categorizer.md
more_training_data.md
morning_debrief.md
prime.md
.env.sample
.gemini/
settings.json.sample
.gitignore
.mcp.json.sample
ai_docs/
ai_docs.md
astral-uv-single-file-scripts.md
claude-code-python-sdk.md
watch-dog-python-docs.md
drops.yaml
edit_image_input_files/
cat_sitting_in_chair.jpg
example_input_files/
bank_statement.csv
cats_edit.json
cats_enhanced.txt
cats.txt
echo.txt
twitter_classification_dataset.csv
yt_script_5_agent_interaction_patterns_4m.mp4
images/
arch.png
README.md
sfs_agentic_drop_zone.py
specs/
simple_multi_processing_solution.mdWatched how we used GPT-5 and Claude Code with nano-agents here. What? A MCP Server for experimental, small scale engineering agents with multi-provider LLM support. Why?
FAQ
agentic-drop-zones is a Claude Code plugin with hand-picked skills for automation work, indexed on Flowy. Install it with the command on its page. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.