{"_id":"@amirlan/archer","_rev":"2-cef034bb8402d40840aa984c6af5494e","name":"@amirlan/archer","dist-tags":{"latest":"0.1.1"},"versions":{"0.1.0":{"name":"@amirlan/archer","version":"0.1.0","_id":"@amirlan/archer@0.1.0","maintainers":[{"name":"amirlan","email":"amirlankalmukhan1@gmail.com"}],"bin":{"archer":"dist/index.js","archer-wizard":"dist/index.js"},"dist":{"shasum":"4983fbfc65c572356ed75b4538c28c5f7834671d","tarball":"https://registry.npmjs.org/@amirlan/archer/-/archer-0.1.0.tgz","fileCount":59,"integrity":"sha512-UVMbThhwK5NzoTdI6eD6PorP8cXogI/+U9VHwWig+87OyAHEc5+AdwnKssdm0OixwXd9Ni3eZkPrlfU56Tgd6Q==","signatures":[{"sig":"MEYCIQC1hYV4aefxN2FpUIMPZ4AXJHs57QPY6cwfOG1o2yFXjQIhANSSrvxqI7aa8K8qUC4n5PlLaueM9MkMfnyQtHuP7/KI","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":151493},"type":"module","gitHead":"2def1e022dc001aef5e65a6711b7ece0e3e79f1e","scripts":{"dev":"tsx src/index.ts","build":"tsc","dev:mcp":"tsx src/index.ts --mcp","prepublishOnly":"npm run build"},"_npmUser":{"name":"amirlan","email":"amirlankalmukhan1@gmail.com"},"_npmVersion":"11.6.2","description":"event intelligence layer for AI agents","directories":{},"_nodeVersion":"24.12.0","dependencies":{"zod":"^4.3.6","dotenv":"^17.3.1","picocolors":"^1.1.1","@clack/prompts":"^1.1.0","@supabase/supabase-js":"^2.99.1","@modelcontextprotocol/sdk":"^1.27.1"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.21.0","typescript":"^5.9.3","@types/node":"^25.5.0"},"_npmOperationalInternal":{"tmp":"tmp/archer_0.1.0_1773587158348_0.11952443877226915","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@amirlan/archer","version":"0.1.1","description":"event intelligence layer for AI agents","type":"module","bin":{"archer":"dist/index.js","archer-wizard":"dist/index.js"},"scripts":{"build":"tsc","dev":"tsx src/index.ts","dev:mcp":"tsx src/index.ts --mcp","prepublishOnly":"npm run build"},"dependencies":{"@modelcontextprotocol/sdk":"^1.27.1","@supabase/supabase-js":"^2.99.1","@clack/prompts":"^1.1.0","picocolors":"^1.1.1","dotenv":"^17.3.1","zod":"^4.3.6"},"devDependencies":{"typescript":"^5.9.3","tsx":"^4.21.0","@types/node":"^25.5.0"},"gitHead":"2def1e022dc001aef5e65a6711b7ece0e3e79f1e","_id":"@amirlan/archer@0.1.1","_nodeVersion":"24.12.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-qcW8X8K+AcLQUB4IHsYtl11xdOUTXynv37s5AcomSDs3PDKYRUlivdgm8a/MM+wXqmtRofBKszUAoiZduPHHNg==","shasum":"77f9736375a4f6fa17285c21a3f843b37e6233bd","tarball":"https://registry.npmjs.org/@amirlan/archer/-/archer-0.1.1.tgz","fileCount":59,"unpackedSize":151493,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHW5jXc8y1chPGb45ZsBh+UqS7tGJZez3o++Ta5vWBaKAiEAvG1Q4Tb2y7XQmnmpczKcDqhrTN4+i08nYJm9L/myHAk="}]},"_npmUser":{"name":"amirlan","email":"amirlankalmukhan1@gmail.com"},"directories":{},"maintainers":[{"name":"amirlan","email":"amirlankalmukhan1@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/archer_0.1.1_1773587196511_0.24352850554169758"},"_hasShrinkwrap":false}},"time":{"created":"2026-03-15T15:05:58.257Z","modified":"2026-03-15T15:06:36.761Z","0.1.0":"2026-03-15T15:05:58.522Z","0.1.1":"2026-03-15T15:06:36.648Z"},"description":"event intelligence layer for AI agents","maintainers":[{"name":"amirlan","email":"amirlankalmukhan1@gmail.com"}],"readme":"<div align=\"center\">\n\n```\n █████╗ ██████╗  ██████╗██╗  ██╗███████╗██████╗\n██╔══██╗██╔══██╗██╔════╝██║  ██║██╔════╝██╔══██╗\n███████║██████╔╝██║     ███████║█████╗  ██████╔╝\n██╔══██║██╔══██╗██║     ██╔══██║██╔══╝  ██╔══██╗\n██║  ██║██║  ██║╚██████╗██║  ██║███████╗██║  ██║\n╚═╝  ╚═╝╚═╝  ╚═╝ ╚═════╝╚═╝  ╚═╝╚══════╝╚═╝  ╚═╝\n```\n\n**event intelligence layer for AI agents**\n\n</div>\n\n---\n\n## what is Archer\n\nZapier was built for apps talking to apps.  \n**Archer was built for the world talking to AI agents.**\n\nEvery AI agent today is reactive. Cursor, Claude Code, opencode — they sit completely idle until you manually talk to them. Nobody built the layer that lets them feel what's happening in real time and act on their own.\n\nArcher is that layer.\n\nYou define a condition once in plain english. Archer watches your data sources 24/7. The moment that condition is true — your AI agent wakes up, already loaded with full context, and acts immediately. No prompting. No polling. No manual triggers.\n\n---\n\n## install\n\n```bash\nnpx archer@latest\n```\n\nRun this inside any project folder. Archer handles everything else automatically.\n\n---\n\n## how it works\n\n```\nyour data source  ──→  Archer watches 24/7  ──→  condition met  ──→  agent fires\n```\n\n1. **scans** your project for data source credentials automatically\n2. **detects** which AI agents you have installed on your machine\n3. **injects** itself into all their configs — one confirmation, no manual JSON\n4. **teaches** every agent when to call `archer.watch()` automatically via global rules\n5. your agent now has a nervous system — it feels the world and acts on its own\n\n---\n\n## quickstart\n\n```bash\n# 1. run inside your project\nnpx archer-wizard@latest\n\n# 2. Archer scans your .env, finds your credentials, injects into your agents\n\n# 3. open your AI agent and say:\n\"watch my users table for new signups and fire https://your-webhook-url\"\n\n# 4. insert a row in your database\n\n# 5. your agent fires automatically\n```\n\n---\n\n## the tool — `archer.watch()`\n\nOnce Archer is set up, your AI agent has access to this tool natively. You never call it directly — your agent calls it when you describe what you want.\n\n```typescript\narcher.watch({\n  source: string,       // data source\n  event: string,        // what to listen for\n  table?: string,       // table name for table events\n  condition?: string,   // plain english condition (optional)\n  webhookUrl: string    // where to fire when condition is met\n})\n```\n\n**just talk to your agent:**\n\n```\n\"watch my users table and fire https://your-webhook.com\n when a new user signs up with a .edu email\"\n```\n\n```\n\"watch my orders table for new inserts and notify https://your-webhook.com\"\n```\n\n```\n\"fire https://your-webhook.com every time a row is deleted from sessions\"\n```\n\n---\n\n## supported events (currently only supabase, p.s. we will add more soon)\n\n| event | description |\n|---|---|\n| `auth.signup` | new user registers |\n| `table.insert` | new row inserted into any table |\n| `table.update` | existing row updated |\n| `table.delete` | row deleted |\n\n---\n\n## webhook payload\n\nEvery time Archer fires, your agent receives this:\n\n```json\n{\n  \"archer\": {\n    \"watchId\": \"uuid\",\n    \"event\": \"table.insert\",\n    \"source\": \"supabase\",\n    \"firedAt\": \"ISO timestamp\"\n  },\n  \"data\": {\n    \"id\": \"row-id\",\n    \"email\": \"user@university.edu\",\n    \"created_at\": \"timestamp\"\n  }\n}\n```\n\n---\n\n## supported agents\n\nArcher auto-detects and injects into all of these:\n\n| agent | status |\n|---|---|\n| Cursor | ✓ supported |\n| Claude Code | ✓ supported |\n| opencode | ✓ supported |\n| Google Antigravity | ✓ supported |\n| Windsurf | ✓ supported |\n\n---\n\n## supported data sources\n\nArcher is built universal — any data source, any platform.\n\n| source | status |\n|---|---|\n| Supabase | ✓ available now |\n| GitHub | coming soon |\n| Stripe | coming soon |\n| Linear | coming soon |\n| Vercel | coming soon |\n| custom webhooks | coming soon |\n\n---\n\n## credentials\n\nArcher scans these files automatically in priority order:\n\n```\n.env.local\n.env\n.env.development\n.env.production\n```\n\nIt recognizes all common aliases automatically:\n\n```bash\n# standard\nSUPABASE_URL=https://yourproject.supabase.co\nSUPABASE_SERVICE_ROLE_KEY=your-service-role-key\n\n# Next.js — also recognized automatically\nNEXT_PUBLIC_SUPABASE_URL=...\n\n# Vite — also recognized automatically\nVITE_SUPABASE_URL=...\n```\n\nYou never paste credentials manually. Archer finds them.\n\n---\n\n## requirements\n\n- Node.js 18 or higher\n- at least one supported AI agent installed\n- a `.env` file with your data source credentials\n- realtime enabled on tables you want to watch\n\n---\n\n## architecture\n\n```\ndeveloper's machine                    data source\n───────────────────                    ───────────\nnpx @amirlan/archer@latest             realtime channel\n   ↓                                          ↓\nwizard scans .env          Archer subscribes to changes 24/7\n   ↓                                          ↓\ninjects into agents        condition matched → webhook fires\n   ↓                                          ↓\nagent calls archer.watch() AI agent wakes up with full context\n```\n\nNo AI at runtime. Once a condition is defined it is pure logic — fast, cheap, reliable.\n\n---\n\n## what v1 does not include\n\n- no dashboard\n- no account required\n- no sign in\n- no API key\n- no cloud service\n\nEverything runs locally on your machine using your own credentials. The architecture is universal from day one — the simplicity is intentional.\n\n\n\n```bash\n# Install from npm\nnpx @amirlan/archer@latest\n\n# Or from source:\ngit clone https://github.com/amirlan-labs/archer-mcp\ncd archer-mcp\nnpm install\nnpm run dev\n```\n\n\n<div align=\"center\">\n\n*agents stop waiting. the world starts talking.*\n\n</div>","readmeFilename":"README.md"}