By giocaizzi
Smart plant irrigation control. Talks to a running greenhouse-server over MCP to read soil moisture / temperature / humidity / light, drive irrigators (start, stop, log manual watering, emergency stop-all), inspect typed decision logs, manage the alert inbox, and tune per-cluster irrigation config. Trigger whenever the user asks anything about their plants, soil, watering, irrigation schedule, sensor readings, irrigator status, blocked drips, leaks, or alerts — even when they don't say 'greenhouse'.
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.
Smart plant irrigation system with Tuya IoT sensors, evidence-based plant care, and self-learning efficiency analysis.
greenhouse monitors soil moisture, temperature, humidity, and light from Tuya-compatible sensors and makes smart irrigation decisions based on evidence-based plant care data. It learns from past irrigation cycles to detect efficiency issues, blocked drips, and unresolvable plant conflicts.
uv sync
uv run greenhouse-server # start REST API + web UI
uv run greenhouse check --all # check all clusters
IrrigationDecision pipeline: cooldown check, stress detection, multi-sensor conflict resolution, trend analysis, evidence-based moisture targets. Every evaluation produces a structured Reason trail and is persisted whether or not it was acted on.| Interface | URL | Notes |
|---|---|---|
| JSON REST API | /api/v1 | Authoritative entry point. OpenAPI docs at /docs. |
| Web UI | / | HTMX + Jinja2 server-rendered. Shares service layer with the API. |
| CLI | greenhouse | Thin httpx client against /api/v1. No DB access. |
| MCP server | /mcp | Every /api/v1 endpoint as an MCP tool via fastapi-mcp. Auth deferred — localhost-only. |
Stop the server and all four go dark. Anything new the CLI or an MCP tool should be able to do must first exist as an API endpoint.
Warning: MCP gives a connected LLM the ability to actuate physical irrigation hardware (
/clusters/{id}/irrigate,/irrigators/{id}/start, etc.). Keep the server localhost-only until auth is added.
git clone https://github.com/giocaizzi/greenhouse.git
cd greenhouse
uv sync
Copy .env.example and fill in your Tuya credentials:
cp .env.example .env
| Variable | Required | Description |
|---|---|---|
TUYA_CLIENT_ID | Yes | Tuya IoT Platform client ID |
TUYA_CLIENT_SECRET | Yes | Tuya IoT Platform client secret |
TUYA_REGION | Yes | eu, us, cn, or in |
IRRIGATION_DB_URL | No | SQLite URL (default: sqlite:///data/irrigation.db) |
IRRIGATION_SERVER_URL | No | CLI server URL (default: http://localhost:8000) |
# Start the server (API at /api/v1, web UI at /)
uv run greenhouse-server
# Set up a cluster
uv run greenhouse cluster add "Living Room" --environment indoor
uv run greenhouse plant add "Monstera deliciosa" --cluster 1
uv run greenhouse sensor add --cluster 1 --device-id YOUR_DEVICE_ID --name "Monstera Sensor" --type soil_moisture
# Operations
uv run greenhouse status 1 # full cluster overview
uv run greenhouse irrigate 1 # smart irrigation pipeline
uv run greenhouse check --all # check all clusters + alerts
uv run greenhouse learn 1 # learning report
uv run greenhouse stats 1 --days 7 # irrigation statistics
Same data is also available via:
http://localhost:8000/ for the HTMX dashboard (clusters, per-plant charts, irrigators, history, scheduler, alerts, health).http://localhost:8000/api/v1/...; OpenAPI docs at http://localhost:8000/docs.http://localhost:8000/mcp (streamable HTTP). Point an MCP client (e.g. Claude Desktop) at it and every API endpoint shows up as a tool.npx claudepluginhub giocaizzi/greenhouse --plugin greenhouseA growing collection of Claude-compatible academic workflow bundles. Covers scientific figures, manuscript writing and polishing, reviewer assessment, citation retrieval, data availability, paper reading, literature search, response letters, paper-to-PPTX conversion, and evidence-grounded Chinese invention patent drafting. Rules are organized as reusable skill folders with explicit workflows and quality checks.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Reliable automation, in-depth debugging, and performance analysis in Chrome using Chrome DevTools and Puppeteer
Comprehensive feature development workflow with specialized agents for codebase exploration, architecture design, and quality review
Memory compression system for Claude Code - persist context across sessions