{"_id":"@anishwij/aw-cli","_rev":"4-016c733c569abd70cef33a3718cb4a2a","name":"@anishwij/aw-cli","dist-tags":{"latest":"0.2.2"},"versions":{"0.1.0":{"name":"@anishwij/aw-cli","version":"0.1.0","_id":"@anishwij/aw-cli@0.1.0","maintainers":[{"name":"anish-wij","email":"anishwijesinghe@gmail.com"}],"bin":{"aw":"dist/cli.js"},"dist":{"shasum":"35ca2bc319fa7f44c34f201bfb419aed9670e5ef","tarball":"https://registry.npmjs.org/@anishwij/aw-cli/-/aw-cli-0.1.0.tgz","fileCount":9,"integrity":"sha512-BUR38Q99PmXPFDiMJQoH+rZJ9mW97xKBG/jCuZb3iUmViRZiUUPMbhImJVgRBXTeUQya2YBeSm8kqMon7wWaGQ==","signatures":[{"sig":"MEUCIQDcHrNFPOu+CpZvjkp+0K3mHqFd67iR1AMSxMDh+cfJTgIge1G4x0UmztTzstaRjxi5ZItVuEdSo5Xcfh/3tK/kawQ=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":9423},"main":"./dist/cli.js","types":"./dist/cli.d.ts","engines":{"node":">=18"},"gitHead":"6e390bba797843e0b425cd8f66223b0f98933859","scripts":{"build":"tsc","prepublishOnly":"bun run build"},"_npmUser":{"name":"anish-wij","email":"anishwijesinghe@gmail.com"},"_npmVersion":"11.6.2","description":"CLI tool for sending messages to Discord","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^4.1.12","execa":"^9.6.0","commander":"^14.0.2"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5","@types/node":"^24.10.1","discord-api-types":"^0.38.34"},"_npmOperationalInternal":{"tmp":"tmp/aw-cli_0.1.0_1763733315277_0.033450272086038346","host":"s3://npm-registry-packages-npm-production"}},"0.2.0":{"name":"@anishwij/aw-cli","version":"0.2.0","_id":"@anishwij/aw-cli@0.2.0","maintainers":[{"name":"anish-wij","email":"anishwijesinghe@gmail.com"}],"bin":{"aw":"dist/cli.js"},"dist":{"shasum":"814783a0d7a6f65257cf255486173fc4687284ea","tarball":"https://registry.npmjs.org/@anishwij/aw-cli/-/aw-cli-0.2.0.tgz","fileCount":18,"integrity":"sha512-/7DI16AUuXYZIYh6mvq4gN5nNUR+s63y+F65tVzpvN+XbnAC4bYrc/Tdf09P9LFQFvtCeM1mcQ5WH4wgfq3PPA==","signatures":[{"sig":"MEUCIE4BmDIukTEf4AvMyGriNZrHZCyQhti9/FriM4DO1nnmAiEAzcxgZkVp8RMC9NEeXVfzE/4VPdtLoT2SgRSSUytqDB8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43387},"main":"./dist/cli.js","types":"./dist/cli.d.ts","engines":{"node":">=18"},"gitHead":"a2ef0c4f16fe484563c8637054d319e3fd9d70de","scripts":{"build":"tsc","prepublishOnly":"bun run build"},"_npmUser":{"name":"anish-wij","email":"anishwijesinghe@gmail.com"},"_npmVersion":"11.6.2","description":"CLI tool for sending messages to Discord, Slack, and Linear","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^4.1.12","execa":"^9.6.0","commander":"^14.0.2","node-fetch":"^3.3.2","@slack/web-api":"^7.4.0"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5","@types/node":"^24.10.1","discord-api-types":"^0.38.34"},"_npmOperationalInternal":{"tmp":"tmp/aw-cli_0.2.0_1763781866541_0.11116052914250174","host":"s3://npm-registry-packages-npm-production"}},"0.2.1":{"name":"@anishwij/aw-cli","version":"0.2.1","_id":"@anishwij/aw-cli@0.2.1","maintainers":[{"name":"anish-wij","email":"anishwijesinghe@gmail.com"}],"bin":{"aw":"dist/cli.js"},"dist":{"shasum":"ed9fb2a5ef1fe7e7957894384cad20babfa15c81","tarball":"https://registry.npmjs.org/@anishwij/aw-cli/-/aw-cli-0.2.1.tgz","fileCount":18,"integrity":"sha512-3d2lYed7WuAMUXP8p9MA14qf/p2yY/QLBnNkr2yAnmDgOjWZvZtbncpezD1cWQetFAC9Am2o1Di78RPfq1Twqw==","signatures":[{"sig":"MEUCIHXisHyW35G6OY1oNLi9r6OyQQYx7LNwGOqqp+Ns+SAwAiEAhqm3BeBpU7qctWQPm4SLqNOSvP+hYyeov4GYhJOM5jM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":43728},"main":"./dist/cli.js","types":"./dist/cli.d.ts","engines":{"node":">=18"},"gitHead":"c932b3b97d502618b3190e0f47df33cbfa95ed86","scripts":{"build":"tsc","prepublishOnly":"bun run build"},"_npmUser":{"name":"anish-wij","email":"anishwijesinghe@gmail.com"},"_npmVersion":"11.6.2","description":"CLI tool for sending messages to Discord, Slack, and Linear","directories":{},"_nodeVersion":"25.2.1","dependencies":{"zod":"^4.1.12","execa":"^9.6.0","commander":"^14.0.2","node-fetch":"^3.3.2","@slack/web-api":"^7.4.0"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"@types/bun":"latest","typescript":"^5","@types/node":"^24.10.1","discord-api-types":"^0.38.34"},"_npmOperationalInternal":{"tmp":"tmp/aw-cli_0.2.1_1763782879577_0.05178672703672871","host":"s3://npm-registry-packages-npm-production"}},"0.2.2":{"name":"@anishwij/aw-cli","version":"0.2.2","description":"CLI tool for sending messages to Discord, Slack, and Linear","bin":{"aw":"dist/cli.js"},"main":"./dist/cli.js","types":"./dist/cli.d.ts","scripts":{"build":"tsc","prepublishOnly":"bun run build"},"publishConfig":{"access":"public"},"engines":{"node":">=18"},"devDependencies":{"@types/bun":"latest","@types/node":"^24.10.1","discord-api-types":"^0.38.34","typescript":"^5"},"dependencies":{"@slack/web-api":"^7.4.0","commander":"^14.0.2","execa":"^9.6.0","node-fetch":"^3.3.2","zod":"^4.1.12"},"gitHead":"c932b3b97d502618b3190e0f47df33cbfa95ed86","_id":"@anishwij/aw-cli@0.2.2","_nodeVersion":"25.2.1","_npmVersion":"11.6.2","dist":{"integrity":"sha512-MKRhPvzv9gmFKoHq0PxMot+cmELP/Pcg2A7cj+CyXcs+em3jrzfST62RGs7nPMeKmSXxN/ivwUse0t9+tGgrig==","shasum":"89991d6148b2098c47e4cc14a86f76a1dcec7134","tarball":"https://registry.npmjs.org/@anishwij/aw-cli/-/aw-cli-0.2.2.tgz","fileCount":18,"unpackedSize":43178,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIA2x7VZq+dOeUUxGkww116Yw4j7ltkayoM+v289nZ/LSAiEAxcbbpFcOPNdJPhJiGpmxiw+r4Usa5Ns8T3qs5kW6lyw="}]},"_npmUser":{"name":"anish-wij","email":"anishwijesinghe@gmail.com"},"directories":{},"maintainers":[{"name":"anish-wij","email":"anishwijesinghe@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/aw-cli_0.2.2_1763783893653_0.41039745342856593"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-21T13:55:15.176Z","modified":"2025-11-22T03:58:14.021Z","0.1.0":"2025-11-21T13:55:15.462Z","0.2.0":"2025-11-22T03:24:26.785Z","0.2.1":"2025-11-22T03:41:19.755Z","0.2.2":"2025-11-22T03:58:13.833Z"},"description":"CLI tool for sending messages to Discord, Slack, and Linear","maintainers":[{"name":"anish-wij","email":"anishwijesinghe@gmail.com"}],"readme":"# aw-cli\n\nPersonal courier CLI I built for my own operator workflows. It gives AI agents (or me) a predictable way to ship repo context from a cloud instance straight into my Slack, Discord, or Linear spaces—nothing here is productized.\n\n**⚠️ This was built for personal use. Expect breaking changes, and zero support.**\n\n## Quick Start\n\n```bash\n# Install globally\nnpm install -g @anishwij/aw-cli\n\n# Or use with npx directly (after env vars are set)\nnpx @anishwij/aw-cli slack send \"Hello from an agent\"\nnpx @anishwij/aw-cli discord send \"Your message\"\n```\n\n## How agents use this\n\n1. Configure the cloud/container environment with the Slack, Discord, and Linear secrets listed below.\n2. Tell the agent (or terminal operator) what to broadcast—e.g. “send this diff to Slack and Discord” or “create a Linear doc for ENG-42.”\n3. The agent runs the matching command:\n   - `aw slack send ...` for channel updates and code snippets.\n   - `aw discord send ...` for quick status dumps.\n   - `aw linear issue <ID> send ...` to create documents and attach them to an issue (optionally commenting back).\n4. Report completion back to the user.\n\nThis README exists so agents fetching `npm view @anishwij/aw-cli readme` understand the available flows.\n\n### Required environment\n\n| Channel  | Variables |\n| --- | --- |\n| Slack | `SLACK_BOT_TOKEN`, `SLACK_CHANNEL_ID` (overridable with `--channel`) |\n| Discord | `DISCORD_BOT_TOKEN`, `DISCORD_CHANNEL_ID` |\n| Linear | `LINEAR_API_KEY` |\n\nNode.js 18+ is required. Keep tokens in agent/VM secrets so commands can run without prompting.\n\n## Init\n\n`aw init` inspects your repo and wires up the highest-priority agent docs plus slash commands so operators know when to reach for `@anishwij/aw-cli`.\n\n```bash\n# Default (prefers AGENTS.md/.cursor, falls back to CLAUDE/.claude)\naw init\n\n# Write .local.md variants for per-developer overrides\naw init --local\n\n# Skip either output\naw init --slash-commands false\naw init --context false\n```\n\nThe command appends a short guide (covering Slack, Discord, and Linear flows) to `AGENTS.md`/`CLAUDE.md` and creates a slash command prompt in `.cursor/commands/` or `.claude/commands/`, matching whichever structure already exists in the repo.\n\n**Slack Bot Setup:**\nYour Slack bot token needs these OAuth scopes:\n- `chat:write` - For sending messages\n- `files:write` - For uploading code snippets\n\nMake sure your bot is added to the target channel and has permission to post messages.\n\n## Usage\n\n```bash\n# Direct message\naw discord send \"Hello!\"\n\n# From file\naw discord send ./message.txt\n\n# From stdin\necho \"Hello\" | aw discord send\n\n# Slack text + snippets\naw slack send \"Regular text\n\n\\`\\`\\`ts\nconsole.log('code snippet')\n\\`\\`\\`\n\"\n\n# Slack code file with metadata\naw slack send --file ./src/index.ts --title \"Init logic\" --comment \"Latest change\"\n\n# Linear issue view\naw linear issue ENG-42 view\n\n# Linear document/comment via stdin\necho \"Ship status update\" | aw linear issue ENG-42 send\n\n# Create Linear document from file content and skip auto-comment\naw linear issue ENG-42 send \"./document.md\" --title \"Incident summary\" --no-comment\n```\n\n### Slack message guidance\n- Text chunks stay under ~4,000 characters to avoid Slack truncation.\n- The CLI slows itself to ~1 message per second to respect Slack rate limits.\n- Code fences in the message become uploaded snippets using `files.getUploadURLExternal`.\n\n### Discord message guidance\n- Messages are limited to 2,000 characters per chunk.\n- Rate limit: 5 messages every 5 seconds.\n- Long messages are automatically split while preserving code blocks.\n\n### Linear guidance\n- Requires a Linear API key with write permissions (`Settings → Account → API`).\n- CLI communicates via GraphQL (`https://api.linear.app/graphql`).\n- `view` prints issue metadata, description, and up to 50 comments.\n- `send` posts a comment or creates a document (when content is Markdown/long-form) and attaches it to the issue as a resource.\n  - Documents appear in the issue's Resources section.\n  - Default title: `<ISSUE> Update` (e.g., \"CHR-239 Update\").\n  - Use `--title` to customize the document title.\n  - Use `--no-comment` to skip the automatic comment that mentions the document.\n  - Content supports Markdown, including code blocks.\n\nRequires Node.js >= 18.\n\n","readmeFilename":"README.md"}