{"_id":"@adamoutler/dash","name":"@adamoutler/dash","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@adamoutler/dash","version":"1.0.0","description":"A secure, authenticated CI/CD monitoring dashboard for autonomous AI agents and humans, supporting GitHub, Forgejo, and Jenkins with native MCP integration.","main":"src/static/sw.js","types":"src/static/sw.d.ts","repository":{"type":"git","url":"git+https://github.com/adamoutler/dash.git"},"bugs":{"url":"https://github.com/adamoutler/dash/issues"},"homepage":"https://github.com/adamoutler/dash#readme","keywords":["agentic","dash","ci-cd","guardrail","automation"],"author":{"name":"Adam Outler","email":"adamoutler@gmail.com"},"contributors":[{"name":"Adam Outler","email":"adamoutler@gmail.com"}],"funding":[{"type":"individual","url":"https://github.com/sponsors/adamoutler"}],"license":"MIT","engines":{"node":">=24.0.0"},"publishConfig":{"access":"public"},"dependencies":{"@inquirer/prompts":"^8.4.2","commander":"^13.1.0","picocolors":"^1.1.1"},"bin":{"dash":"cli/bin/dash.js"},"_id":"@adamoutler/dash@1.0.0","gitHead":"1bb39a01c75247643795e721b2725e2272314667","_nodeVersion":"20.20.2","_npmVersion":"10.8.2","dist":{"integrity":"sha512-iVAhsIriheCZ/iitWL62cN/dJezJFOO2uO7W4E/VTDKOyDJIGAU4NRgfIMZ+zUvpFTMz+eP7u6NsEirCGSE70A==","shasum":"2b72a928af664d0576be9663585d19f2cdf0df9c","tarball":"https://registry.npmjs.org/@adamoutler/dash/-/dash-1.0.0.tgz","fileCount":454,"unpackedSize":4272029,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICMEeCzGogFs/uq0yf1hhad5YTCNMhstxLnmoADxXejzAiA31wDNQpJpND+iFizyO7z97KJgK9h8+unTYRH6qSXK3A=="}]},"_npmUser":{"name":"adamoutler","email":"npm@hackedyour.info"},"directories":{},"maintainers":[{"name":"adamoutler","email":"npm@hackedyour.info"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dash_1.0.0_1777648146022_0.5152126454007755"},"_hasShrinkwrap":false}},"time":{"created":"2026-05-01T15:09:05.916Z","1.0.0":"2026-05-01T15:09:06.323Z","modified":"2026-05-01T15:09:06.551Z"},"maintainers":[{"name":"adamoutler","email":"npm@hackedyour.info"}],"description":"A secure, authenticated CI/CD monitoring dashboard for autonomous AI agents and humans, supporting GitHub, Forgejo, and Jenkins with native MCP integration.","homepage":"https://github.com/adamoutler/dash#readme","keywords":["agentic","dash","ci-cd","guardrail","automation"],"repository":{"type":"git","url":"git+https://github.com/adamoutler/dash.git"},"contributors":[{"name":"Adam Outler","email":"adamoutler@gmail.com"}],"author":{"name":"Adam Outler","email":"adamoutler@gmail.com"},"bugs":{"url":"https://github.com/adamoutler/dash/issues"},"license":"MIT","readme":"# <img src=\"docs/icon.jpg\" width=\"40\" height=\"40\" alt=\"Dash Logo\" style=\"vertical-align: middle\"> 🛑 Stop AI Hallucinations! Your Ultimate Dash & Agent Guardrail 🚀\n\n[![SafeSkill](https://safeskill.dev/api/badge/adamoutler-dash)](https://safeskill.dev/scan/adamoutler-dash)\n\n> **The essential CI feedback loop and guardrail for autonomous AI development.**\n\nTired of your AI agent confidently hallucinating: *\"I changed it, so now it works. I'll push the changes!\"* only to break the main branch? 🤦\n\nWelcome to the **Dash**—a beautifully simple, Dockerized hub that gives you an at-a-glance view of your projects, while serving as the ultimate **guardrail for your AI agents** (Claude, Gemini, GPT). Without a feedback loop from your Continuous Integration (CI) pipeline, agents fly blind. This dashboard serves as a foundational building block to provide immediate, factual build feedback to autonomous agents, stopping regressions in their tracks.\n\n> *\"A unified dashboard for your autonomous agents, beautifully designed for your workflow—whether you prefer the light of day or the terminal dark.\"*\n\n![Dash Aesthetic](docs/img/dashboard_split.png?v=2)\n\n---\n\n## ✨ Key Features\n\n* 🔐 **Secure & Authenticated**: Role-based access with Basic Auth and Bearer Token management. *(Highly recommended: See our [Security & Authentication Guide](docs/security.md) to lock down your dashboard).*\n* 🤖 **AI-Ready MCP Server**: Built-in JSON-RPC 2.0 endpoint (`/mcp`) exposing essential macros (`get_status`, `get_logs`, `wait`) for agents.\n* 📜 **Agent Discovery**: Includes `llms.txt` at the root so autonomous agents can self-discover capabilities.\n* 🚦 **Unified Visual Dashboard**: A clean, centralized UI to view build statuses across all tracked repositories at a glance.\n* 🔌 **Multi-Provider Support**: Seamlessly integrates with both GitHub and Forgejo CI/CD pipelines.\n* 🛡️ **Autonomous Guardrail**: Allows agents to estimate wait times, wait for CI runs, and fetch logs autonomously to prevent broken pushes.\n* 🐳 **Dockerized Simplicity**: Easy to deploy with a single `docker-compose up` command.\n\n---\n\n## 🤖 For AI Agents: The Guardrail API\n\nBy pointing your agent to the repository URL and our `llms.txt` ([see a raw example of what the LLM sees here](src/static/llms.txt)), you instantly give them superpower hooks to interact with your CI/CD pipeline. No more blind pushes! Your agent can now:\n\n* 📚 **Comprehensive AI Guide**: See the full [AI/Agent Journey](docs/ai-journey.md) for detailed automated workflows.\n\n* ⏱️ **Estimate wait times** for CI runs.\n* ⏳ **Wait patiently** for the CI pipeline to finish.\n* 📥 **Receive immediate results** the second the build passes or fails.\n* 📜 **Request full CI logs** to autonomously debug failures.\n* 🔗 **Access important URLs** and check the current build status programmatically.\n\n### 🔌 MCP Server (Model Context Protocol)\n\nThe dashboard natively supports the **Model Context Protocol (MCP)**. Autonomous agents (like Claude Desktop or Gemini) can connect directly to the `/mcp` endpoint via JSON-RPC 2.0.\n\n* **`get_status`**: Get a clean, markdown-formatted status report of any configured project, keeping your terminal tidy while the agent gets raw JSON context.\n* **`get_logs`**: Retrieve the direct log URL for a failing build.\n* **`wait`**: Instruct the agent to sleep and wait for the CI pipeline to complete before proceeding.\n* **Self-Discovery**: The `repo` and `workflow` parameters for these tools support a `\"help\"` argument, allowing agents to automatically discover what repos they can track without guessing!\n\n### 🔌 Pro-Hacks: Setting Up Agent Hooks\n\nAgents can discover how to use the dashboard simply by reading the `llms.txt` file at the root URL. You can use standard prompts to wire up these hooks:\n\n#### Hack 1: The \"Push & Wait\" Hook\nInstruct your AI (Claude/Gemini/GPT) to run a script after pushing code that waits for the build and echoes the result:\n> *\"After pushing code, run a script to wait for the build. Fetch the results using `curl -N -s 'https://your-dashboard-url/api/wait?provider=github&owner=your_user&repo=your_repo' | jq .status` and report back to me.\"*\n\n#### Hack 2: The \"Tooling\" Hook\nGive your agents a custom tool to gather build results across all your projects so they can check statuses before deciding what to work on next:\n> *\"Before marking the task as complete, gather build results from the Dash using `curl -s https://your-dashboard-url/api/status` to verify that your changes did not break the build.\"*\n\n---\n\n## 💻 For Humans: The Visual Hub\n\nBeyond acting as an API for AI, the Dash provides a clean, unified graphical experience for human developers. It's all about peace of mind:\n\n* 🗺️ **Comprehensive User Guide**: See the full [User Journey](docs/user-journey.md) for detailed human workflows.\n\n* 🎨 **Visual Sanity & At-a-Glance Status:** A clean, large-font UI to view the current build status of all your projects on a single screen.\n* 🚦 **Color-Coded Statuses:** Instantly see what's Running, Passed, or Failed. Stop digging through nested CI provider menus just to see if your `main` branch is green.\n* 🎯 **Deep Linking & Quick Actions:** Custom quick-action links (Deploy, Source, Kanban) get you exactly into the specific failing pipeline, commit, or log output you need to investigate with zero friction.\n\n### ➕ Adding Repositories in the UI\n\nWhen clicking **+ Add Repository** in the dashboard, the input format depends on the CI provider you select:\n\n* **GitHub / Gitea / Forgejo:**\n  * **Owner:** The username or organization name (e.g., `adamoutler`).\n  * **Repo:** The repository name (e.g., `dash`).\n* **Jenkins:**\n  * **Owner:** A custom display name for the dashboard (e.g., `dash Deploy` or `BrowserTerm`).\n  * **Repo:** The full URL to the main project/job page (e.g., `https://jenkins.adamoutler.com/view/Upgrades/job/Updates/job/dash/job/master/`).\n\n---\n\n## 🚀 Get Started\n\n**For AI Agents:**\nJust point your agent to `<your-dashboard-url>/llms.txt` and tell it to read the docs. It will know exactly what to do! 🧠\n\n**For Humans (Deployment):**\n1. Clone the repo:\n   ```bash\n   git clone <repository-url>\n   cd ci-dashboard\n   ```\n2. Set your `GITHUB_TOKEN`, `FORGEJO_URL`, and/or `FORGEJO_TOKEN` in your environment (or `.env` file).\n3. Run via Docker Compose for a stress-free setup:\n   ```bash\n   docker-compose up -d\n   ```\n*(Note: Keep it safe! Run locally or on an internal network, not the public internet).*\n\n---\n**💡 Loving the seamless workflow? Drop a ⭐ on the repo and share your favorite AI automated workflows in the issues!**\n","readmeFilename":"README.md","_rev":"1-b3990e6032b171f5902a0f4dadd6581d"}