{"_id":"@aryan-404-404/repocli","_rev":"5-a6c6d5e2a7e77971af38825071b91cf3","name":"@aryan-404-404/repocli","dist-tags":{"latest":"1.0.4"},"versions":{"1.0.0":{"name":"@aryan-404-404/repocli","version":"1.0.0","keywords":[],"author":"","license":"ISC","_id":"@aryan-404-404/repocli@1.0.0","maintainers":[{"name":"aryan-404-404","email":"aryan411770@gmail.com"}],"bin":{"repocli":"dist/index.js"},"dist":{"shasum":"7d282fd120e0c1fd8f0d24a683cc0dc5de71fda8","tarball":"https://registry.npmjs.org/@aryan-404-404/repocli/-/repocli-1.0.0.tgz","fileCount":2,"integrity":"sha512-EyNuqj5TaZ1ckeHT2QlkLMAbsD4VZhQaIqcAHD0CEn6lE2XoKwdeV/zr5560bLbpZASrilMeIXnxZHHLmVoQuw==","signatures":[{"sig":"MEYCIQC8RZO8rJAx5aw6uWzrKwMOmARI1iD7wWDSuCJsGZhrtAIhAN7ROsB3URVc+BDRZj4HTmbCE4sunp+1NwrKHcaP4WPm","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4381},"main":"dist/index.js","type":"commonjs","gitHead":"835d25ce8dd8b1170ebe624b50f61544a8ce66bb","scripts":{"dev":"ts-node src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"aryan-404-404","email":"aryan411770@gmail.com"},"_npmVersion":"11.5.1","description":"A terminal AI agent that executes tasks from plain English","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ora":"^9.3.0","chalk":"^5.6.2","dotenv":"^17.4.1","octokit":"^5.0.5","groq-sdk":"^1.1.2","commander":"^14.0.3","@octokit/rest":"^22.0.1","@inquirer/prompts":"^8.4.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^6.0.2","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/repocli_1.0.0_1777136421608_0.2066551161746948","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@aryan-404-404/repocli","version":"1.0.1","keywords":[],"author":"","license":"ISC","_id":"@aryan-404-404/repocli@1.0.1","maintainers":[{"name":"aryan-404-404","email":"aryan411770@gmail.com"}],"bin":{"repocli":"dist/index.js"},"dist":{"shasum":"11c5fc31d7870506f7ad3da7dce01d49e8cee630","tarball":"https://registry.npmjs.org/@aryan-404-404/repocli/-/repocli-1.0.1.tgz","fileCount":2,"integrity":"sha512-hHBH7OpBguVdnnq2PDjvyFwHHBJYuyKAydcG77DQV7Ip4HMSvJix38JKd3x2EgBNe8OHbe0Spnx9AJfEDWMjfw==","signatures":[{"sig":"MEUCIQC7/UnFTYtEvoKdgD/eY0a/zTT9TDYHwKtbwQ0co/PjDQIgIpo9AK7i+9sk/4Rh2f+BnPGZfv9+QInXPP3n4QO6pm8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4401},"main":"dist/index.js","type":"commonjs","gitHead":"b5151cf753111b316ed4c124a9c09f246b81bf81","scripts":{"dev":"ts-node src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"aryan-404-404","email":"aryan411770@gmail.com"},"_npmVersion":"11.5.1","description":"A terminal AI agent that executes tasks from plain English","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ora":"^9.3.0","chalk":"^5.6.2","dotenv":"^17.4.1","octokit":"^5.0.5","groq-sdk":"^1.1.2","commander":"^14.0.3","@octokit/rest":"^22.0.1","@inquirer/prompts":"^8.4.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^6.0.2","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/repocli_1.0.1_1777136640934_0.25169165990560205","host":"s3://npm-registry-packages-npm-production"}},"1.0.2":{"name":"@aryan-404-404/repocli","version":"1.0.2","keywords":[],"author":"","license":"ISC","_id":"@aryan-404-404/repocli@1.0.2","maintainers":[{"name":"aryan-404-404","email":"aryan411770@gmail.com"}],"bin":{"repocli":"dist/index.js"},"dist":{"shasum":"7e2c507533942b69b7edae05993024c42a4bda79","tarball":"https://registry.npmjs.org/@aryan-404-404/repocli/-/repocli-1.0.2.tgz","fileCount":2,"integrity":"sha512-Ckofx+9NIecYNNJrzy8HJhccGFOTjWhc5Cyof1XNSj1OqPHD9l4/nyhy4PRAjPaNc8SEeMRkYoX3lDMSejgsaA==","signatures":[{"sig":"MEYCIQDh6bdLIUa4Iang8sLvoM2L2s3ARxg7QuW6HVz1FFUzTAIhALxdsrmtel+E4pph9OK29UeaKK9b5p78H6q64HdarHLp","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":4403},"main":"dist/index.js","type":"commonjs","gitHead":"8a13280205e1b3014bca08d2b871f3917ddf7f8f","scripts":{"dev":"ts-node src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"aryan-404-404","email":"aryan411770@gmail.com"},"_npmVersion":"11.5.1","description":"A terminal AI agent that executes tasks from plain English","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ora":"^9.3.0","chalk":"^5.6.2","dotenv":"^17.4.1","octokit":"^5.0.5","groq-sdk":"^1.1.2","commander":"^14.0.3","@octokit/rest":"^22.0.1","@inquirer/prompts":"^8.4.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^6.0.2","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/repocli_1.0.2_1777137080618_0.264402191188869","host":"s3://npm-registry-packages-npm-production"}},"1.0.3":{"name":"@aryan-404-404/repocli","version":"1.0.3","keywords":[],"author":"","license":"ISC","_id":"@aryan-404-404/repocli@1.0.3","maintainers":[{"name":"aryan-404-404","email":"aryan411770@gmail.com"}],"bin":{"repocli":"dist/index.js"},"dist":{"shasum":"0ed6a3999d535dd4bfb57112692de34e0abefe8d","tarball":"https://registry.npmjs.org/@aryan-404-404/repocli/-/repocli-1.0.3.tgz","fileCount":6,"integrity":"sha512-C+kYCM93VypDDDaWldEBqjjB47ry+PMCNHF6PNZ0i2tTMAb01Wx/dW58PWEH9CnbdBf/WSJF5kF/VAccv6aKtg==","signatures":[{"sig":"MEUCIQCW9fvzzvhD/+UC/66X+uXxBPGTZYa1E+hyFuS9tMw5DQIgEbV2gBuQijspAijounDI8yJklKk0Cwo6kA8Eou2HSeo=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":27391},"main":"dist/index.js","type":"commonjs","gitHead":"535f93fea85213cd1631bab470a3323dd2c5cfe0","scripts":{"dev":"ts-node src/index.ts","test":"echo \"Error: no test specified\" && exit 1","build":"tsc"},"_npmUser":{"name":"aryan-404-404","email":"aryan411770@gmail.com"},"_npmVersion":"11.5.1","description":"A terminal AI agent that executes tasks from plain English","directories":{},"_nodeVersion":"24.12.0","dependencies":{"ora":"^9.3.0","chalk":"^5.6.2","dotenv":"^17.4.1","octokit":"^5.0.5","groq-sdk":"^1.1.2","commander":"^14.0.3","@octokit/rest":"^22.0.1","@inquirer/prompts":"^8.4.2"},"_hasShrinkwrap":false,"devDependencies":{"ts-node":"^10.9.2","typescript":"^6.0.2","@types/node":"^25.5.2"},"_npmOperationalInternal":{"tmp":"tmp/repocli_1.0.3_1777177079526_0.9145933651442848","host":"s3://npm-registry-packages-npm-production"}},"1.0.4":{"name":"@aryan-404-404/repocli","version":"1.0.4","description":"A terminal AI agent that executes tasks from plain English","main":"dist/index.js","bin":{"repocli":"dist/index.js"},"scripts":{"test":"echo \"Error: no test specified\" && exit 1","build":"tsc","dev":"ts-node src/index.ts"},"keywords":[],"author":"","license":"ISC","type":"commonjs","dependencies":{"@inquirer/prompts":"^8.4.2","@octokit/rest":"^22.0.1","chalk":"^5.6.2","commander":"^14.0.3","dotenv":"^17.4.1","groq-sdk":"^1.1.2","octokit":"^5.0.5","ora":"^9.3.0"},"devDependencies":{"@types/node":"^25.5.2","ts-node":"^10.9.2","typescript":"^6.0.2"},"_id":"@aryan-404-404/repocli@1.0.4","gitHead":"d82c869ea925d0041de65492625d9a738f0b84d3","_nodeVersion":"24.12.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-YkeGSteWH1mtNE4t1PXIEpQ/1Ka8Qym0XJKgL4bD86V+XLFrw5uJq4HVV0UMigOZ43CCRaiB3yBXFfCMQlLQHw==","shasum":"b1a79611a478cc977c3c3dbf860f77d8147a791c","tarball":"https://registry.npmjs.org/@aryan-404-404/repocli/-/repocli-1.0.4.tgz","fileCount":7,"unpackedSize":31395,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCIAGNW0S4pN6pJ3Apbh9smKOdKOHm9LGrbU8qPNRpwwybAiA4jbdztPVfBQHoYxv/wR0XQ31ASf+S6TgtmPtxFNObKg=="}]},"_npmUser":{"name":"aryan-404-404","email":"aryan411770@gmail.com"},"directories":{},"maintainers":[{"name":"aryan-404-404","email":"aryan411770@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/repocli_1.0.4_1777823226052_0.838456744191943"},"_hasShrinkwrap":false}},"time":{"created":"2026-04-25T17:00:21.547Z","modified":"2026-05-03T15:47:06.755Z","1.0.0":"2026-04-25T17:00:21.769Z","1.0.1":"2026-04-25T17:04:01.068Z","1.0.2":"2026-04-25T17:11:20.747Z","1.0.3":"2026-04-26T04:17:59.684Z","1.0.4":"2026-05-03T15:47:06.218Z"},"license":"ISC","keywords":[],"description":"A terminal AI agent that executes tasks from plain English","maintainers":[{"name":"aryan-404-404","email":"aryan411770@gmail.com"}],"readme":"# repocli 🤖\r\n\r\nRepoCLI is a terminal agent that reads your entire codebase, finds and fixes bugs and raises issues with a single command.\r\n\r\n\r\n## Features\r\n- Agent reads and understands your entire codebase to find bugs.\r\n- It can raise Github issues and can read a Github issue and fix it.\r\n- It can perform file operations like read, write, delete or create directories.\r\n- Runs shell commands directly (ex. git add . , npm install <anything>).\r\n- For destrutive commands like *deleteFile* and Shell commands like *rm -rf* it asks again for confirmation. \r\n\r\n## Installation & Setup\r\n\r\n### Option 1 — Install from npm (Recommended)\r\n\r\n```bash\r\nnpm install -g @aryan-404-404/repocli\r\n```\r\n\r\n### Option 2 — Clone for Development\r\n\r\n```bash\r\ngit clone https://github.com/Aryan-404-404/repocli\r\ncd repocli\r\nnpm install\r\nnpm run build\r\nrepocli \"your command\"\r\n```\r\n\r\n### Environment Variables\r\n\r\nrepocli requires a Groq API key to run. GitHub token is optional but required for GitHub features.\r\n\r\n**Get your free Groq API key:** https://console.groq.com\r\n\r\n```bash\r\n# Mac/Linux\r\nexport GROQ_API_KEY=\"your_key_here\"\r\nexport GITHUB_TOKEN=\"your_token_here\"  # optional\r\n\r\n# Windows PowerShell\r\n$env:GROQ_API_KEY=\"your_key_here\"\r\n$env:GITHUB_TOKEN=\"your_token_here\"  # optional\r\n```\r\n\r\n## Usage Examples\r\n\r\n### Read and understand a file\r\n```bash\r\nrepocli \"read the file called agent.ts and explain what it does\"\r\n```\r\n![agent.ts explanation](https://github.com/user-attachments/assets/2aeace1b-9ec6-4083-913a-3947c92e42f1)\r\n\r\n---\r\n\r\n### Find all TODOs in your project\r\n```bash\r\nrepocli \"find all TODO comments in this project\"\r\n```\r\n![TODO search](https://github.com/user-attachments/assets/e0de7cca-2c8f-44b8-9729-14596415d733)\r\n\r\n---\r\n\r\n### Create a GitHub issue\r\n```bash\r\nrepocli \"create a github issue in repo 'repocli' owned by 'Aryan-404-404' about adding streaming support for tool call results\"\r\n```\r\n![GitHub issue created](https://github.com/user-attachments/assets/5c3cbd2f-fe3c-492d-9283-aea74698bfc1)\r\n![GitHub issue on repo](https://github.com/user-attachments/assets/13ea42ef-4a6f-4ed5-9061-56a53523ca0e)\r\n\r\n\r\n### Shell + reasoning:\r\n```bash\r\nrepocli \"run git log --oneline -5 and summarize what has been worked on recently\"\r\n```\r\n<img width=\"1594\" height=\"216\" alt=\"image\" src=\"https://github.com/user-attachments/assets/fddfdbea-b88e-4952-ad1e-c3bba581eada\" />\r\n\r\n\r\n## Tech Stack\r\n\r\n- **Node.js** — Runtime environment that executes the CLI tool\r\n- **TypeScript** — Adds static typing to catch errors at compile time\r\n- **Groq SDK (Llama 3.3 70B)** — AI brain of the agent, handles reasoning and tool call decisions\r\n- **Octokit** — GitHub REST API client for creating and reading issues\r\n- **Commander** — Parses CLI arguments and handles command structure\r\n- **Chalk** — Adds colors to terminal output\r\n- **Ora** — Spinner and loading animations in the terminal\r\n- **Inquirer** — Interactive confirmation prompts for destructive actions\r\n  \r\n## Project Structure\r\n```\r\nsrc/\r\n│   agent.ts        — Core agent loop, tool dispatcher, and Groq integration\r\n│   index.ts        — CLI entry point, Commander setup, interactive mode\r\n│\r\n└───tools/\r\n        filesystem.ts   — File operations (read, write, delete, search, list)\r\n        github.ts       — GitHub API tools (create, read, list issues)\r\n        shell.ts        — Shell command execution with safety guardrails\r\n```\r\n\r\n## Author\r\n\r\n## Author\r\n\r\n**Aryan**\r\n- GitHub: [@Aryan-404-404](https://github.com/Aryan-404-404)\r\n- npm: [@aryan-404-404/repocli](https://www.npmjs.com/package/@aryan-404-404/repocli)\r\n- LinkedIn: [linkedin.com/aryan](https://www.linkedin.com/in/aryan-599443271/)\r\n","readmeFilename":"README.md"}