{"_id":"@lfg-labs/t3-watch","_rev":"9-34d5363428984178b9e3318573637f05","name":"@lfg-labs/t3-watch","dist-tags":{"latest":"0.6.0"},"versions":{"0.0.0-stage":{"name":"@lfg-labs/t3-watch","version":"0.0.0-stage","_id":"@lfg-labs/t3-watch@0.0.0-stage","stub":true,"maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"dist":{"shasum":"491b0880857c94dcf6e2c2d13a9f67766b91ae3d","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.0.0-stage.tgz","fileCount":2,"integrity":"sha512-mo82qTkjP1itJpLylZE6yB4pgdsCVDkVSGJtbRBBOuEKakjjJeM8NImN8fLHOy3W2pUWG/pgs2QG8YXpxsr6tA==","signatures":[{"sig":"MEUCIQCWimtMYnfR4dNIIpiqmyWy6xDGNV0TCuO6yddGPD7drQIgX7diLYpJvrGLAqEWLuUcWy4M2iRoS8W+OI2zUF8/USY=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":340},"_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"description":"Temporary package placeholder for staged publishing","directories":{}},"0.1.0":{"name":"@lfg-labs/t3-watch","version":"0.1.0","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"author":{"name":"Abdul Sami"},"license":"MIT","_id":"@lfg-labs/t3-watch@0.1.0","maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"homepage":"https://github.com/sami-abdul/t3-watch#readme","bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"bin":{"t3-watch":"bin/t3-watch.js"},"dist":{"shasum":"f7e4989409732c2db9a714a42d2de634c918b077","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.1.0.tgz","fileCount":48,"integrity":"sha512-9MC2J2C+JMk0Q0uKG6RvtV0yv63Px3IRDeXUUGfLBKjXTDzmHtZgfHKnJhIUUXBwx1dvyeUy96DeyFq9g+q3lQ==","signatures":[{"sig":"MEUCIQCmR8ukyYH2LB2xyGkhyphHOW/pKXe/kAkQkkI5yV8HiQIgFNwxTXGUTf3V/kZGCrJ6k5B/fKsQYFadxvXvQHy4Www=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIF/BCk1NC9u7LE95erIWygl9oD4yLqkVBGhtFP4roIkTAiAxtSMkOw+gGjB/0d5MPdqYXxpGG6poruMHnchJ0oBLJg==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1373653},"type":"module","engines":{"node":">=24"},"gitHead":"b922fc44bff91501eb7cda7e6e4ae480e94dd670","scripts":{"dev":"node src/server/cli.ts start","test":"vitest run","build":"pnpm build:server && pnpm build:web && pnpm build:app","prepack":"pnpm build","build:app":"vite build --mode app","build:web":"vite build","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.web.json","build:server":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm typecheck && pnpm test"},"_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"_npmVersion":"11.19.0","description":"Watches the systems you run, sets itself up from your projects, and talks to your agents over MCP.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"4.6.7","@modelcontextprotocol/core":"2.3.1","@modelcontextprotocol/node":"2.1.1","@modelcontextprotocol/client":"2.3.1","@modelcontextprotocol/server":"2.3.1","@modelcontextprotocol/ext-apps":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.10.0","devDependencies":{"clsx":"2.1.1","vite":"8.3.4","react":"19.3.0","motion":"14.2.0","vitest":"5.0.4","react-dom":"19.3.0","typescript":"7.0.2","@types/node":"^24.0.0","tailwindcss":"4.3.3","@types/react":"19.3.0","lucide-react":"1.56.0","@base-ui/react":"1.9.0","tailwind-merge":"3.7.0","@types/react-dom":"19.3.0","@tailwindcss/vite":"4.3.3","@vitejs/plugin-react":"6.1.2","vite-plugin-singlefile":"2.3.3","class-variance-authority":"0.7.1"},"_npmOperationalInternal":{"tmp":"tmp/t3-watch_0.1.0_1792571199549_0.5073550233861754","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@lfg-labs/t3-watch","version":"0.2.0","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"author":{"name":"Abdul Sami"},"license":"MIT","_id":"@lfg-labs/t3-watch@0.2.0","maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"homepage":"https://github.com/sami-abdul/t3-watch#readme","bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"bin":{"t3-watch":"bin/t3-watch.js"},"dist":{"shasum":"b643b211381ca4b5f4041154c6eff6739190f220","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.2.0.tgz","fileCount":51,"integrity":"sha512-TnR7/bcePFH9iwd2MfJILeIdfD3UlTMe58jKjzVk+GSD7d3qlhg1aOQZjYi4scLROwwBg7M2FhIBsoJa8fWHTA==","signatures":[{"sig":"MEYCIQC4eMV0/GxXm4orJKFGUa3/ttppKXb+NtPwHZwsjC7C+AIhAJTj5iojP3LuxPriw6yqAOpPJZpjyAwJC7Am+u1eFGTZ","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIFeYy103SAWG+jIqei9Q7/QEzEwbgfa3m7/3MFRa+hsiAiEAjuz6ak9ZHWuNQ+0PlA06WytnMXIe6OGDqzyOH5gf3rQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1453783},"type":"module","engines":{"node":">=24"},"gitHead":"a209253eaf7cb69080a2f41522849b42cf7e68ab","scripts":{"dev":"node src/server/cli.ts start","test":"vitest run","build":"pnpm build:server && pnpm build:web && pnpm build:app","prepack":"pnpm build","build:app":"vite build --mode app","build:web":"vite build","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.web.json","build:server":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm typecheck && pnpm test"},"_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"_npmVersion":"11.19.0","description":"Watches the systems you run, sets itself up from your projects, and talks to your agents over MCP.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"4.6.7","@modelcontextprotocol/core":"2.3.1","@modelcontextprotocol/node":"2.1.1","@modelcontextprotocol/client":"2.3.1","@modelcontextprotocol/server":"2.3.1","@modelcontextprotocol/ext-apps":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.10.0","devDependencies":{"clsx":"2.1.1","vite":"8.3.4","react":"19.3.0","motion":"14.2.0","vitest":"5.0.4","react-dom":"19.3.0","typescript":"7.0.2","@types/node":"^24.0.0","tailwindcss":"4.3.3","@types/react":"19.3.0","lucide-react":"1.56.0","@base-ui/react":"1.9.0","tailwind-merge":"3.7.0","@types/react-dom":"19.3.0","@tailwindcss/vite":"4.3.3","@vitejs/plugin-react":"6.1.2","vite-plugin-singlefile":"2.3.3","class-variance-authority":"0.7.1"},"_npmOperationalInternal":{"tmp":"tmp/t3-watch_0.2.0_1792600092669_0.7729081536274867","host":"s3://npm-registry-packages-npm-production"}},"0.3.0":{"name":"@lfg-labs/t3-watch","version":"0.3.0","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"author":{"name":"Abdul Sami"},"license":"MIT","_id":"@lfg-labs/t3-watch@0.3.0","maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"homepage":"https://github.com/sami-abdul/t3-watch#readme","bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"bin":{"t3-watch":"bin/t3-watch.js"},"dist":{"shasum":"88c226fadfc0e728a2955666b0be474797f8c31b","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.3.0.tgz","fileCount":54,"integrity":"sha512-/uB2KKgW2njP9JcFK5f5ujJSM6UJlzaXxmWFG3DToY18qi5U+FF0iRT+uq8kLK7ppCaK7taQfQuvrmZV9ZhvyQ==","signatures":[{"sig":"MEUCIQDCxUEieiPaHrPFoazcIaX1PKNXyTUODqgHL9TXV6Fq1AIgSVZXHysdAA1xAec6rqMX7LE/SUPB5sLdfMuGxHE1ocg=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQD6FKNHtRnKra5CjocgGLR2wnoTp9kLUAnPOMPR3e47lAIhAKQoVROLWsaTe6MipvU8dW6rSpzkKPyu4sGudd+ogjF0","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1514235},"type":"module","engines":{"node":">=24"},"gitHead":"cce87c99b7b5cf10985e0dd815725fa437c597dc","scripts":{"dev":"node src/server/cli.ts start","test":"vitest run","build":"pnpm build:server && pnpm build:web && pnpm build:app","prepack":"pnpm build","build:app":"vite build --mode app","build:web":"vite build","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.web.json","build:server":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm typecheck && pnpm test"},"_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"_npmVersion":"11.19.0","description":"Watches the systems you run, sets itself up from your projects, and talks to your agents over MCP.","directories":{},"_nodeVersion":"24.21.0","dependencies":{"zod":"4.6.7","@modelcontextprotocol/core":"2.3.1","@modelcontextprotocol/node":"2.1.1","@modelcontextprotocol/client":"2.3.1","@modelcontextprotocol/server":"2.3.1","@modelcontextprotocol/ext-apps":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.10.0","devDependencies":{"clsx":"2.1.1","vite":"8.3.4","react":"19.3.0","motion":"14.2.0","vitest":"5.0.4","react-dom":"19.3.0","typescript":"7.0.2","@types/node":"^24.0.0","tailwindcss":"4.3.3","@types/react":"19.3.0","lucide-react":"1.56.0","@base-ui/react":"1.9.0","tailwind-merge":"3.7.0","@types/react-dom":"19.3.0","@tailwindcss/vite":"4.3.3","@vitejs/plugin-react":"6.1.2","vite-plugin-singlefile":"2.3.3","class-variance-authority":"0.7.1"},"_npmOperationalInternal":{"tmp":"tmp/t3-watch_0.3.0_1792614895533_0.5129103207929209","host":"s3://npm-registry-packages-npm-production"}},"0.4.0":{"name":"@lfg-labs/t3-watch","version":"0.4.0","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"author":{"name":"Abdul Sami"},"license":"MIT","_id":"@lfg-labs/t3-watch@0.4.0","maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"homepage":"https://github.com/sami-abdul/t3-watch#readme","bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"bin":{"t3-watch":"bin/t3-watch.js"},"dist":{"shasum":"1a3ab07e71464e39daad24c9a31bc129c189e6ce","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.4.0.tgz","fileCount":57,"integrity":"sha512-tLw9XJzKoavul+WXVGOJZGEzLc5MKfOr+gZ3akLTG76wWkyRiaO3JMybRugnGEySvWIA6L+ok9Xv9zosjZO8Nw==","signatures":[{"sig":"MEYCIQDhAh1Rm152ppkhcwDaXdj7pFEBNnSro9ZWWSnvqURISgIhAKXfyYTsAnduiT6WwN1eIy8LKjIAAvS/x9HGf7JN+SH3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQDr7r9hvdpldneAWFzwOyix7PzLzO36ZxCmvz28tah/JgIgM6Bf5uv/Ez4Ik7+sU5aX082Iua+sUuJ8h4JjzVKBC60=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1546751},"type":"module","engines":{"node":">=24"},"gitHead":"a29f0002e67d94cba44244edd4bbc8b1f8d95e14","mcpName":"ai.lfglabs/t3-watch","scripts":{"dev":"node src/server/cli.ts start","test":"vitest run","build":"pnpm build:server && pnpm build:web && pnpm build:app","prepack":"pnpm build","build:app":"vite build --mode app","build:web":"vite build","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.web.json","build:server":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm typecheck && pnpm test"},"_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"_npmVersion":"11.19.1","description":"Monitoring that sets itself up from the projects on your machine, and wakes your coding agent only when something changes.","directories":{},"_nodeVersion":"24.22.1","dependencies":{"zod":"4.6.7","@modelcontextprotocol/core":"2.3.1","@modelcontextprotocol/node":"2.1.1","@modelcontextprotocol/client":"2.3.1","@modelcontextprotocol/server":"2.3.1","@modelcontextprotocol/ext-apps":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.10.0","devDependencies":{"clsx":"2.1.1","vite":"8.3.4","react":"19.3.0","motion":"14.2.0","vitest":"5.0.4","react-dom":"19.3.0","typescript":"7.0.2","@types/node":"^24.0.0","tailwindcss":"4.3.3","@types/react":"19.3.0","lucide-react":"1.56.0","@base-ui/react":"1.9.0","tailwind-merge":"3.7.0","@types/react-dom":"19.3.0","@tailwindcss/vite":"4.3.3","@vitejs/plugin-react":"6.1.2","vite-plugin-singlefile":"2.3.3","class-variance-authority":"0.7.1"},"_npmOperationalInternal":{"tmp":"tmp/t3-watch_0.4.0_1792653656923_0.27790877204049913","host":"s3://npm-registry-packages-npm-production"}},"0.4.1":{"name":"@lfg-labs/t3-watch","version":"0.4.1","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"author":{"name":"Abdul Sami"},"license":"MIT","_id":"@lfg-labs/t3-watch@0.4.1","maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"homepage":"https://github.com/sami-abdul/t3-watch#readme","bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"bin":{"t3-watch":"bin/t3-watch.js"},"dist":{"shasum":"40e7b9bdfae0c44b4d20958e8040639e83d45306","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.4.1.tgz","fileCount":57,"integrity":"sha512-lJOsehnnZ6O1PCw47UMBYgub05W828ZU8B6DPq7mFap6UakB7qWmbPze4NYHAC5WoaywnBPq2qE0pul6pfvKKw==","signatures":[{"sig":"MEQCIB/zlvpzjgJK1Ls/C6WBeO8qdqsiOy+qETADeABxZRM1AiAExG+oneLprqlPv73dZj9h5q4VlscFjxcAgnrcps1SeA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEQCIAcsuu6Ue/rn7zm89kE8sKoMNmC4PIRnnXiiRRczZI0nAiB/RCNOF/FSu3Lx1DNh8lA+9gxYJSyGX11oaVUpSX7ZYA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1554023},"type":"module","engines":{"node":">=24"},"gitHead":"914531f323aa3f5f360c05becb45c0388fb69f99","mcpName":"ai.lfglabs/t3-watch","scripts":{"dev":"node src/server/cli.ts start","test":"vitest run","build":"pnpm build:server && pnpm build:web && pnpm build:app","prepack":"pnpm build","build:app":"vite build --mode app","build:web":"vite build","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.web.json","build:server":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm typecheck && pnpm test"},"_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"_npmVersion":"11.19.1","description":"Monitoring that sets itself up from the projects on your machine, and wakes your coding agent only when something changes.","directories":{},"_nodeVersion":"24.22.1","dependencies":{"zod":"4.6.7","@modelcontextprotocol/core":"2.3.1","@modelcontextprotocol/node":"2.1.1","@modelcontextprotocol/client":"2.3.1","@modelcontextprotocol/server":"2.3.1","@modelcontextprotocol/ext-apps":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.10.0","devDependencies":{"clsx":"2.1.1","vite":"8.3.4","react":"19.3.0","motion":"14.2.0","vitest":"5.0.4","react-dom":"19.3.0","typescript":"7.0.2","@types/node":"^24.0.0","tailwindcss":"4.3.3","@types/react":"19.3.0","lucide-react":"1.56.0","@base-ui/react":"1.9.0","tailwind-merge":"3.7.0","playwright-core":"1.60.0","@types/react-dom":"19.3.0","@tailwindcss/vite":"4.3.3","@vitejs/plugin-react":"6.1.2","vite-plugin-singlefile":"2.3.3","class-variance-authority":"0.7.1"},"_npmOperationalInternal":{"tmp":"tmp/t3-watch_0.4.1_1792659263016_0.9896460308001667","host":"s3://npm-registry-packages-npm-production"}},"0.5.0":{"name":"@lfg-labs/t3-watch","version":"0.5.0","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"author":{"name":"Abdul Sami"},"license":"MIT","_id":"@lfg-labs/t3-watch@0.5.0","maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"homepage":"https://github.com/sami-abdul/t3-watch#readme","bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"bin":{"t3-watch":"bin/t3-watch.js"},"dist":{"shasum":"66dea2bf198683eb6d50ba84186540648ddf95ea","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.5.0.tgz","fileCount":58,"integrity":"sha512-eyG7BWYMInADKetdltkwYrYGMsINy9AkZ+XdV6LkNoN1yHLuGcP1Ug43b91bwg4f9kd+8+VKjDADCa9p0u29ag==","signatures":[{"sig":"MEUCIQDFvqRYn5tcC2fByxY2KONM4levpEC7EIJEBVL4Rs6nyAIgcofdCtJTDpb2OrZgTPVuULNwOKRjuHmLBp0fiZWLnu8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEUCIQCQutnS2AuMtZ1/PEb920kLFtRfhnox8NyWQHJ+ev71JQIgXfwLVSCIGbnY7MuukDotZH3uwX4lAra2ejRUoQDBgwA=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1560694},"type":"module","engines":{"node":">=24"},"gitHead":"0e0aae2ae50fb706ae90e006f79497fefb3bb3aa","mcpName":"ai.lfglabs/t3-watch","scripts":{"dev":"node src/server/cli.ts start","test":"vitest run","build":"pnpm build:server && pnpm build:web && pnpm build:app","prepack":"pnpm build","build:app":"vite build --mode app","build:web":"vite build","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.web.json","build:server":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm typecheck && pnpm test"},"_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"_npmVersion":"11.19.1","description":"Monitoring that sets itself up from the projects on your machine, and wakes your coding agent only when something changes.","directories":{},"_nodeVersion":"24.22.1","dependencies":{"zod":"4.6.7","@modelcontextprotocol/core":"2.3.1","@modelcontextprotocol/node":"2.1.1","@modelcontextprotocol/client":"2.3.1","@modelcontextprotocol/server":"2.3.1","@modelcontextprotocol/ext-apps":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.10.0","devDependencies":{"clsx":"2.1.1","vite":"8.3.4","react":"19.3.0","motion":"14.2.0","vitest":"5.0.4","react-dom":"19.3.0","typescript":"7.0.2","@types/node":"^24.0.0","tailwindcss":"4.3.3","@types/react":"19.3.0","lucide-react":"1.56.0","@base-ui/react":"1.9.0","tailwind-merge":"3.7.0","playwright-core":"1.60.0","@types/react-dom":"19.3.0","@tailwindcss/vite":"4.3.3","@vitejs/plugin-react":"6.1.2","vite-plugin-singlefile":"2.3.3","class-variance-authority":"0.7.1"},"_npmOperationalInternal":{"tmp":"tmp/t3-watch_0.5.0_1792674775121_0.9036725642764467","host":"s3://npm-registry-packages-npm-production"}},"0.5.1":{"name":"@lfg-labs/t3-watch","version":"0.5.1","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"author":{"name":"Abdul Sami"},"license":"MIT","_id":"@lfg-labs/t3-watch@0.5.1","maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"homepage":"https://github.com/sami-abdul/t3-watch#readme","bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"bin":{"t3-watch":"bin/t3-watch.js"},"dist":{"shasum":"41e404d3086332c605afd8dbd74df7f9481c66e5","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.5.1.tgz","fileCount":58,"integrity":"sha512-gXaiyLzcvmvu9PhRYArkQYrxo3W+arWSfFwQo5ZLi5SiQh2mbXNYx2GMU6RPM/O4KnBdq1v2zOLcpNuHQDvFYQ==","signatures":[{"sig":"MEQCIC9MockGvUm3R/9tltcXQU9BsKKhcyP3PqtB7PR2xUsNAiA5kvOj8dQoFPh+IEtt5QkYzQUhaFGcniUt2D3HfJQD6g==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"sig":"MEYCIQDY8/RNSj7LlGxC6AZ7qUW/3jVt9fpas1S89t07TfKN+gIhAJV3GkLFxyODM5khfifQcQ8k9w+suwlSy9+YTOn59uwM","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":1565448},"type":"module","engines":{"node":">=24"},"gitHead":"9d5eb2d5b7f93762e94bec5b70ae2d5d9d16286e","mcpName":"ai.lfglabs/t3-watch","scripts":{"dev":"node src/server/cli.ts start","test":"vitest run","build":"pnpm build:server && pnpm build:web && pnpm build:app","prepack":"pnpm build","build:app":"vite build --mode app","build:web":"vite build","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.web.json","build:server":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm typecheck && pnpm test"},"_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"_npmVersion":"11.19.1","description":"Monitoring that sets itself up from the projects on your machine, and wakes your coding agent only when something changes.","directories":{},"_nodeVersion":"24.22.1","dependencies":{"zod":"4.6.7","@modelcontextprotocol/core":"2.3.1","@modelcontextprotocol/node":"2.1.1","@modelcontextprotocol/client":"2.3.1","@modelcontextprotocol/server":"2.3.1","@modelcontextprotocol/ext-apps":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.10.0","devDependencies":{"clsx":"2.1.1","vite":"8.3.4","react":"19.3.0","motion":"14.2.0","vitest":"5.0.4","react-dom":"19.3.0","typescript":"7.0.2","@types/node":"^24.0.0","tailwindcss":"4.3.3","@types/react":"19.3.0","lucide-react":"1.56.0","@base-ui/react":"1.9.0","tailwind-merge":"3.7.0","playwright-core":"1.60.0","@types/react-dom":"19.3.0","@tailwindcss/vite":"4.3.3","@vitejs/plugin-react":"6.1.2","vite-plugin-singlefile":"2.3.3","class-variance-authority":"0.7.1"},"_npmOperationalInternal":{"tmp":"tmp/t3-watch_0.5.1_1792728033317_0.007297170901876537","host":"s3://npm-registry-packages-npm-production"}},"0.6.0":{"_id":"@lfg-labs/t3-watch@0.6.0","bin":{"t3-watch":"bin/t3-watch.js"},"bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"dist":{"shasum":"417a77a14918129c2b46b3d91d19f71d15bc7eab","tarball":"https://registry.npmjs.org/@lfg-labs/t3-watch/-/t3-watch-0.6.0.tgz","fileCount":68,"integrity":"sha512-aF3Rkd2npRs14clqKwbyFx0JJVOBtZ5svNvewh6xcdKGPAR4EtexPoZUBFHHsAKjg9uD89a9seRoMkXISXTYyA==","signatures":[{"sig":"MEQCIH9YL3o52IZ1XSeuEvSndIOnyxUVILVRkghcV0VQnwyBAiAoRQps+PK0e2QFiK0R4mhtXvla5R+66kgwcD+EXrSFhw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIBh54q75aWlXJI2bup9KYKQz46N7RWrxZWDZWjN+0KW8AiAAgLIxI0AlkzdaJi3y3A4vaBFBhX4H8AyTVUg4sk+4LA=="}],"unpackedSize":1587367},"name":"@lfg-labs/t3-watch","type":"module","author":{"name":"Abdul Sami"},"engines":{"node":">=24"},"license":"MIT","mcpName":"ai.lfglabs/t3-watch","scripts":{"dev":"node src/server/cli.ts start","test":"vitest run","build":"pnpm build:server && pnpm build:web && pnpm build:app","prepack":"pnpm build","build:app":"vite build --mode app","build:web":"vite build","typecheck":"tsc --noEmit -p tsconfig.json && tsc --noEmit -p tsconfig.web.json","build:site":"node scripts/build-site.ts","build:server":"tsc -p tsconfig.build.json","prepublishOnly":"pnpm typecheck && pnpm test"},"version":"0.6.0","_npmUser":{"name":"low_key_builds","email":"sami@lfglabs.ai"},"homepage":"https://t3-watch.lfglabs.ai","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"_npmVersion":"11.19.1","description":"Monitoring that sets itself up from the projects on your machine, and wakes your coding agent only when something changes.","directories":{},"maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"_nodeVersion":"24.22.1","dependencies":{"zod":"4.6.7","@modelcontextprotocol/core":"2.3.1","@modelcontextprotocol/node":"2.1.1","@modelcontextprotocol/client":"2.3.1","@modelcontextprotocol/server":"2.3.1","@modelcontextprotocol/ext-apps":"2.0.3"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"packageManager":"pnpm@11.10.0","devDependencies":{"clsx":"2.1.1","vite":"8.3.4","react":"19.3.0","motion":"14.2.0","vitest":"5.0.4","react-dom":"19.3.0","typescript":"7.0.2","@types/node":"^24.0.0","tailwindcss":"4.3.3","@types/react":"19.3.0","lucide-react":"1.56.0","@base-ui/react":"1.9.0","tailwind-merge":"3.7.0","playwright-core":"1.60.0","@types/react-dom":"19.3.0","@tailwindcss/vite":"4.3.3","@vitejs/plugin-react":"6.1.2","vite-plugin-singlefile":"2.3.3","class-variance-authority":"0.7.1"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/t3-watch_0.6.0_1792823937223_0.5604287161759738"}}},"time":{"created":"2026-10-21T08:23:29.662Z","modified":"2026-10-24T06:38:57.590Z","0.0.0-stage":"2026-10-21T08:23:29.662Z","0.1.0":"2026-10-21T08:26:39.657Z","0.2.0":"2026-10-21T16:28:12.777Z","0.3.0":"2026-10-21T20:34:55.621Z","0.4.0":"2026-10-22T07:20:57.012Z","0.4.1":"2026-10-22T08:54:23.125Z","0.5.0":"2026-10-22T13:12:55.220Z","0.5.1":"2026-10-23T04:00:33.491Z","0.6.0":"2026-10-24T06:38:57.362Z"},"bugs":{"url":"https://github.com/sami-abdul/t3-watch/issues"},"author":{"name":"Abdul Sami"},"license":"MIT","homepage":"https://t3-watch.lfglabs.ai","keywords":["mcp","monitoring","uptime","github-actions","agents","t3","codex","claude-code"],"repository":{"url":"git+https://github.com/sami-abdul/t3-watch.git","type":"git"},"description":"Monitoring that sets itself up from the projects on your machine, and wakes your coding agent only when something changes.","maintainers":[{"name":"low_key_builds","email":"sami@lfglabs.ai"}],"readme":"# t3-watch\n\nAn agent on call for the things nobody watches. Checks run free; your agent wakes only when\nsomething changes.\n\nWatch keeps an eye on the systems you run: CI, cloud accounts, API keys, URLs and scheduled jobs.\nIt sets itself up from the projects and logins already on your machine, and runs its checks as\nplain code on its own clock, so they spend no model tokens.\n\n- **The page** is for knowing and deciding: what's broken, what's waiting for you, and one-click\n  Turn on, Pause and Add key. Keys are pasted here, never in chat. Details edits a check's name,\n  how often it runs and its settings, and deletes one; a deleted check keeps its history and can\n  be restored.\n- **The chat** is for understanding and authoring. A \"Watch\" thread in [T3 Code](https://t3.codes)\n  (or any MCP client) investigates failures, writes new checks and shows the page inline.\n\n[![The demo in 60 seconds: one command starts it, Home leads with the broken check and the agent's note on it, a check the agent wrote gets turned on, the products open with their checks, and Details shows a key and a signed test alert](docs/demo.gif)](docs/demo.mp4)\n\nThe demo in 60 seconds, recorded from `npx @lfg-labs/t3-watch demo` with its sample data. Click it\nfor the sharper [MP4](docs/demo.mp4), which GitHub hands over as a download.\n\n[Website](https://t3-watch.lfglabs.ai) · [MCP Registry](https://registry.modelcontextprotocol.io/v0.1/servers?search=ai.lfglabs%2Ft3-watch)\n\n## Try it first\n\n```sh\nnpx @lfg-labs/t3-watch demo\n```\n\nWith Node 24 or newer, the demo runs a Watch with sample checks on this machine and prints a\nsign-in link for its page. Every check and alert in it gets a canned answer, and it neither scans\nnor takes keys, so it reaches none of your accounts and sends nothing off the machine. Signing in\nto it leaves your own Watch signed in. Ctrl-C stops it and removes it. The video and the\nscreenshots here come from it.\n\n| Each product with its checks | Editing a check in Details |\n| --- | --- |\n| ![The products expanded, each listing its checks with their latest result](docs/checks.png) | ![Details with the edit form open: name, how often it runs, and its settings as JSON](docs/details.png) |\n\n## Install\n\nWatch needs Node 24 or newer, on a machine that stays on.\n\n```sh\nnpm install -g @lfg-labs/t3-watch\nt3-watch install\n```\n\n`install` runs Watch in the background at login (systemd on Linux, launchd on macOS), adds its MCP\nserver to Codex and Claude Code, and prints a sign-in link for the page. A sign-in link works\nonce, within 10 minutes, so a copy left in a terminal, a log or a chat is useless after use. For\neach other browser, `t3-watch url` prints a new one, or ask your Watch thread for the page. A\nbrowser gets its own session, never the access token agents use, and `t3-watch signout` signs\nevery browser out while agents keep working.\n\nT3 Code can run several accounts for one provider, each in its own home. `t3-watch install --all`\nalso adds Watch's MCP server to every enabled Claude Code and Codex home in T3's settings, so a\nWatch thread works on any account, and `t3-watch uninstall --all` takes it out of them again.\n\nTo run from a checkout instead, clone this repository, run `pnpm install && pnpm build`, then\n`node bin/t3-watch.js install`.\n\nOn Linux, `loginctl enable-linger $USER` keeps it running while you're logged out.\n\nIf Tailscale runs on the machine, `install` serves the page on your tailnet over HTTPS with\n`tailscale serve`, never `funnel`, on port 8461 or the next free one, and sign-in links point\nthere. It opens on your own devices and nowhere else. Tailscale lets only its operator do this:\nif install says so, run `sudo tailscale set --operator=$USER` once and install again.\n`--no-tailscale` keeps the page on this machine, a `publicUrl` you set in\n`~/.t3-watch/config.json` is left as it is, and `uninstall` stops the route install made. If `host`\nthere is a tailnet address, Watch listens on 127.0.0.1 as well, so `tailscale serve` can front it.\n\n## First run\n\nOpen the page. It first shows what Watch may read: the folders it would look in, `~/Projects`\nand any of `~/code`, `~/src` and `~/dev` that exist, each with how many git repositories it\nholds, and three logins: the GitHub CLI, AWS CLI profiles, and vendor keys in `.env` files.\nUntick what Watch should leave alone, add a folder if you like, and press **Scan these**. Watch\nreads only what is ticked: it finds the vendors your code uses, tests the logins you allowed, and\nruns every suggested check once. Untick the checks you don't want and press **Watch these**.\n**Add services** shows the same choice before each later scan, and an agent can read it with\n`watch_sources`.\n\nWatch only reads. Keys it finds are stored encrypted in `~/.t3-watch`, and their values never\nreach the page, a log or an agent.\n\n## The Watch thread\n\n`install` adds a project named Watch to T3 Code, in a folder of its own with no code, so a thread\nthere starts without any repository's hooks, skills or memory. Start a thread in it and say \"Show\nme Watch\". The agent calls `watch_home`. On Codex threads the page appears inline and its buttons\nwork; on other providers you get the same state as text. `install --no-project` skips the\nproject, and `uninstall` leaves it with its threads.\n\nThings to ask:\n\n- \"What's broken?\" or \"Why did CI fail on api?\"\n- \"Pause the Stripe checks until Monday.\"\n- \"Make sure the nightly import ran.\" The agent drafts a check, runs it once, and leaves it for you\n  to turn on.\n- \"Watch Missive too.\" The agent writes a vendor description and tests it with your key.\n- \"Put shop.example under Storefront.\" Home groups checks by product, guessed from names; when a\n  site's repository has another name, the agent names the product, and the repository follows.\n- \"Set up alerts.\" Alerts in the page's Details walks you through three steps. Press **Make a\n  signing secret**, which the page shows once. Say \"Set up alerts\" here: the agent creates a T3\n  webhook task bound to the thread that checks Watch's signature, asks you to paste the secret\n  into a private T3 card, gives Watch the task's address, and sends a test alert. The task\n  accepts it only when it holds Watch's secret. **Send a test alert** on the page, or\n  `t3-watch alerts test` in a terminal, sends another whenever you want to check, and\n  `t3-watch alerts` says how the last one went. The secret never passes through the chat, Watch\n  refuses one sent over MCP, and only the webhook's host shows on the page. From then on, a check that starts failing, recovers or can't\n  run wakes the thread, and the agent looks into it before you open it. Checks that keep passing\n  send nothing. A check that was passing counts as failing only when two runs in a row do not\n  pass; Watch runs it again within a minute of the first, so one dropped request wakes nobody. A\n  recovery counts at once.\n\n## Slack alerts\n\nIn Details, Alerts, paste your own Slack incoming-webhook URL into the password field and press\n**Save Slack webhook**. Watch encrypts it with the same installation key as vendor keys, never\nshows it again, and never hands it to an agent. **Send Slack test** checks that the channel\naccepts messages. Replace the URL there, or **Disconnect Slack** to stop sending. The demo takes\nno real Slack URL.\n\n[Create an incoming webhook](https://docs.slack.dev/messaging/sending-messages-using-incoming-webhooks/)\nin your Slack app and choose its channel. Slack and GovSlack are supported. Slack needs no T3\nCode account, and T3 thread alerts keep working alongside it. Each destination has its own\ndelivery queue. New or replaced destinations start with future changes, not old events.\n\nWatch sends one Slack change at a time, at least a second apart. Failed sends retry on the\nservice's minute timer, honor Slack's Retry-After on HTTP 429, and stop after twenty attempts.\nDetails shows the latest test and delivery result. A Slack notification reports the change;\nautomatic investigation still needs the T3 thread webhook.\n\n## When Watch's own connection drops\n\nWhen a check that needs the internet stops passing, Watch first asks whether it can reach the\ninternet at all. If neither `https://www.gstatic.com/generate_204` nor\n`https://one.one.one.one/cdn-cgi/trace` answers within 5 seconds, it holds the result: the run\nshows in the check's history as held, the check keeps its last result, and nothing alerts. Home\nand the Watch thread's status say when Watch lost its connection. Heartbeats and checks on this\nmachine are never held, and a check's failures are held for at most an hour of its runs in a row,\nin case the probe addresses are what is blocked.\n\nA slow link gets the same care. When a web or vendor check's connection to a public site times\nout, drops or cannot finish its name lookup, Watch times its probe. One that takes\na second or more, or 400 ms or more while two or more sites newly fail that way within two\nminutes, means Watch's own link is slow, and the failure is held like an offline one. A refused\nconnection, a bad certificate, an HTTP answer, GitHub and AWS checks, and checks on your own\nnetwork, by address or by a name such as nas or fritz.box, still count. A check's next run after a held one waits 45 seconds for an answer instead\nof 15. Home and the Watch thread's status say when the connection turned slow; the spell ends when\na probe or a request answers within 400 ms, or a probe no longer shows it slow.\n\nIf your network blocks those two addresses, list ones it allows as `probeUrls` in\n`~/.t3-watch/config.json` and restart Watch. An empty list turns holding off. Watch notices a\nblocked list on its own: when the addresses fail twice in an hour right after a check reached the\ninternet, it stops holding and says so on Home until one of them answers or Watch restarts. A\nweb request that had just taken longer than the probes wait is the exception: then the link is\nslow, not the list blocked.\n\n## Vendors\n\nEach vendor is a JSON file in [`catalog/`](catalog): how to spot it in a project, which variable\nholds its key, how to send the key, which read-only call proves the key works, and which checks\nto offer. Adding a vendor is a file, not a release. Watch only sends GET requests to the API\norigin a description names.\n\nShipped: Stripe, Pipedrive, Missive, Asana, Airtable, Jotform, Calendly, Vimeo, Sentry, OpenAI,\nAnthropic, Vercel, Cloudflare, Neon, Supabase, Render, SendGrid, Resend, GitLab.com and\nDigitalOcean. These new descriptions verify API access, not deployment health or email delivery.\n[Endpoints, required permissions and limits](docs/launch/vendor-sources.md) explain which key to\nuse, including Resend's full-access requirement and why Twilio and Linear are not supported yet.\nXero is recognised, but sign-in vendors aren't supported yet.\n\nCheck kinds that need no vendor file: `http`, `github` (through `gh`; for a scheduled workflow, name\nit in `workflow` and add `maxAgeSeconds`, so a schedule GitHub skipped or disabled fails instead of\nstaying green),\n`aws_metric` (through the AWS CLI) and `heartbeat` (a job pings a URL; add `?status=fail` when it\nfails).\n\nGitHub's runs API sometimes answers, for a while, with no runs at all for a repository that has\nthem. A GitHub check that has listed runs for its repository, branch and workflow holds such an\nempty list as Watch holds a failure while it is offline: for up to an hour of its runs, and\nwithout a probe, since GitHub answered. If the list stays empty past that, the check says so, as\nin \"GitHub listed no runs for main in owner/repo, though it had them before\", or \"for refresh.yml\non owner/repo\" when it reads one workflow on any branch. \"No finished runs yet\" stays for a list\nwith nothing finished in it, and an edit to another branch or workflow starts the check's memory\nover.\n\n## Development\n\n```sh\npnpm dev          # the service from source, on 127.0.0.1:8460\npnpm test         # unit and integration tests\npnpm typecheck\npnpm build        # server, page and the inline view\nnode scripts/record-demo.ts   # the README's demo video again, with Chrome and ffmpeg\n```\n\nDesign and requirements live in [`openspec/`](openspec).\n\n## License\n\nFree and open source under the [MIT license](LICENSE).\n","readmeFilename":"README.md"}