{"_id":"@0vv/yolo-cli","_rev":"4-a159a5327cd496f5884a245585574067","name":"@0vv/yolo-cli","dist-tags":{"latest":"0.0.4"},"versions":{"0.0.1":{"name":"@0vv/yolo-cli","version":"0.0.1","keywords":["ai","cli","chat","openrouter","claude","gpt","gemini","terminal","mcp","model-context-protocol"],"author":{"name":"BAK Chanhee","email":"bak@chanhee.kr"},"license":"MIT","_id":"@0vv/yolo-cli@0.0.1","maintainers":[{"name":"0vv","email":"0vv@521.kr"}],"homepage":"https://github.com/9j/yolo-cli#readme","bugs":{"url":"https://github.com/9j/yolo-cli/issues"},"xo":{"rules":{"react/prop-types":"off"},"extends":"xo-react","prettier":true},"bin":{"yolo-cli":"dist/index.js"},"dist":{"shasum":"c5cdf3c320a6deeb6aa5a3ffaabd8ef500ce8d23","tarball":"https://registry.npmjs.org/@0vv/yolo-cli/-/yolo-cli-0.0.1.tgz","fileCount":184,"integrity":"sha512-h6QKtYGDP0iImlIwlkmvrFutggtii1Of5l3jktcQ1WHzo05koV2jJK11QM0RL5fKXblxQw6sJlGXyiXWU+McoQ==","signatures":[{"sig":"MEUCIQC4Q/AhbvCJS2/9HEpNBUxLvyt122xIoxGrR7s04EVEKgIgBCFpMZ3Cp7bur2W+U+uj5OQ+ljNy5+CFZ8D3eTZcK8k=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435469},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"f50183654ab3647cd7fb3728fe4edc0b335c77c1","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"0vv","email":"0vv@521.kr"},"prettier":"@vdemedes/prettier-config","repository":{"url":"git+https://github.com/9j/yolo-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Interactive AI command-line interface powered by OpenRouter","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ink":"^4.1.0","react":"^18.2.0","commander":"^11.0.0","ink-spinner":"^5.0.0","ink-text-input":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.53.1","chalk":"^5.2.0","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^2.8.7","@vitest/ui":"^1.0.0","typescript":"^5.0.3","@types/react":"^18.0.32","@vitest/coverage-v8":"^1.6.1","eslint-plugin-react":"^7.32.2","ink-testing-library":"^3.0.0","@sindresorhus/tsconfig":"^3.0.1","eslint-config-xo-react":"^0.27.0","@modelcontextprotocol/sdk":"^1.21.1","@vdemedes/prettier-config":"^2.0.1","eslint-plugin-react-hooks":"^4.6.0"},"_npmOperationalInternal":{"tmp":"tmp/yolo-cli_0.0.1_1762624310410_0.06773070649883395","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@0vv/yolo-cli","version":"0.0.2","keywords":["ai","cli","chat","openrouter","claude","gpt","gemini","kimi","minimax","glm","terminal","mcp","model-context-protocol"],"author":{"name":"BAK Chanhee","email":"bak@chanhee.kr"},"license":"MIT","_id":"@0vv/yolo-cli@0.0.2","maintainers":[{"name":"0vv","email":"0vv@521.kr"}],"homepage":"https://github.com/9j/yolo-cli#readme","bugs":{"url":"https://github.com/9j/yolo-cli/issues"},"xo":{"rules":{"react/prop-types":"off"},"extends":"xo-react","prettier":true},"bin":{"yolo":"dist/index.js"},"dist":{"shasum":"9912787ecb44d39a2e65969243108ad1a5751c0c","tarball":"https://registry.npmjs.org/@0vv/yolo-cli/-/yolo-cli-0.0.2.tgz","fileCount":184,"integrity":"sha512-KWEnznTUYSX0z4lxzX4j24jtA0/EcYE9iGVVr38VynXsUdHdI25G6JZV5xgGskVrK5o0MtdS4f5QmhxG2/WFYg==","signatures":[{"sig":"MEUCIQD0J7P9Tg9uB73x9GMBbNq+QhfWznHaW2DdOo/T4o5CqAIgE9A7umbnOnzAF9NBQW4tCifHoobSNatDCGnPQil4pjU=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435593},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"b1edc93e251d591579b3ae42b1653de0725e5e8e","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"0vv","email":"0vv@521.kr"},"prettier":"@vdemedes/prettier-config","repository":{"url":"git+https://github.com/9j/yolo-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Interactive AI command-line interface powered by OpenRouter","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ink":"^4.1.0","react":"^18.2.0","commander":"^11.0.0","ink-spinner":"^5.0.0","ink-text-input":"^5.0.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.53.1","chalk":"^5.2.0","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^2.8.7","@vitest/ui":"^1.0.0","typescript":"^5.0.3","@types/react":"^18.0.32","@vitest/coverage-v8":"^1.6.1","eslint-plugin-react":"^7.32.2","ink-testing-library":"^3.0.0","@sindresorhus/tsconfig":"^3.0.1","eslint-config-xo-react":"^0.27.0","@modelcontextprotocol/sdk":"^1.21.1","@vdemedes/prettier-config":"^2.0.1","eslint-plugin-react-hooks":"^4.6.0"},"_npmOperationalInternal":{"tmp":"tmp/yolo-cli_0.0.2_1762624878691_0.1662850283490218","host":"s3://npm-registry-packages-npm-production"}},"0.0.3":{"name":"@0vv/yolo-cli","version":"0.0.3","keywords":["ai","cli","chat","openrouter","claude","gpt","gemini","kimi","minimax","glm","terminal","mcp","model-context-protocol"],"author":{"name":"BAK Chanhee","email":"bak@chanhee.kr"},"license":"MIT","_id":"@0vv/yolo-cli@0.0.3","maintainers":[{"name":"0vv","email":"0vv@521.kr"}],"homepage":"https://github.com/9j/yolo-cli#readme","bugs":{"url":"https://github.com/9j/yolo-cli/issues"},"xo":{"rules":{"react/prop-types":"off"},"extends":"xo-react","prettier":true},"bin":{"yolo":"dist/index.js"},"dist":{"shasum":"22fdc08c62bdfa2d09422f744f1efc76e41d12e2","tarball":"https://registry.npmjs.org/@0vv/yolo-cli/-/yolo-cli-0.0.3.tgz","fileCount":184,"integrity":"sha512-0mnoJlnE2yyO7ohufWj8x7jZNHoALKWlJnHBRIcTn3M6HhImRL0drA+bjoGsMyveFbFsBOFdEDFzrb9bNTsXxQ==","signatures":[{"sig":"MEYCIQDVkFY5zZexeK4aohNWhwrxP6B51wdtemV9GtpwQDdHOAIhAPMaRS34zZVANc9yp9J9g82w3KZ3ts0tyRlmK6AZpqZk","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":435613},"type":"module","engines":{"node":">=18.0.0"},"gitHead":"3d3ad60620beb9fdc08db024a5d7b7b0cd2b08ea","scripts":{"dev":"tsc --watch","test":"vitest run","build":"tsc","test:ui":"vitest --ui","test:watch":"vitest"},"_npmUser":{"name":"0vv","email":"0vv@521.kr"},"prettier":"@vdemedes/prettier-config","repository":{"url":"git+https://github.com/9j/yolo-cli.git","type":"git"},"_npmVersion":"11.5.1","description":"Interactive AI command-line interface powered by OpenRouter","directories":{},"_nodeVersion":"24.6.0","dependencies":{"ajv":"^8.17.1","ink":"^4.1.0","chalk":"^5.2.0","react":"^18.2.0","commander":"^11.0.0","ink-spinner":"^5.0.0","ink-text-input":"^5.0.1","@modelcontextprotocol/sdk":"^1.21.1"},"_hasShrinkwrap":false,"devDependencies":{"xo":"^0.53.1","vitest":"^1.0.0","ts-node":"^10.9.1","prettier":"^2.8.7","@vitest/ui":"^1.0.0","typescript":"^5.0.3","@types/react":"^18.0.32","@vitest/coverage-v8":"^1.6.1","eslint-plugin-react":"^7.32.2","ink-testing-library":"^3.0.0","@sindresorhus/tsconfig":"^3.0.1","eslint-config-xo-react":"^0.27.0","@vdemedes/prettier-config":"^2.0.1","eslint-plugin-react-hooks":"^4.6.0"},"_npmOperationalInternal":{"tmp":"tmp/yolo-cli_0.0.3_1762625162611_0.9824712268532223","host":"s3://npm-registry-packages-npm-production"}},"0.0.4":{"name":"@0vv/yolo-cli","version":"0.0.4","description":"Interactive AI command-line interface powered by OpenRouter","license":"MIT","author":{"name":"BAK Chanhee","email":"bak@chanhee.kr"},"bin":{"yolo":"dist/index.js"},"type":"module","engines":{"node":">=18.0.0"},"keywords":["ai","cli","chat","openrouter","claude","gpt","gemini","kimi","minimax","glm","terminal","mcp","model-context-protocol"],"repository":{"type":"git","url":"git+https://github.com/9j/yolo-cli.git"},"bugs":{"url":"https://github.com/9j/yolo-cli/issues"},"homepage":"https://github.com/9j/yolo-cli#readme","scripts":{"build":"tsc","dev":"tsc --watch","test":"vitest run","test:watch":"vitest","test:ui":"vitest --ui"},"dependencies":{"@modelcontextprotocol/sdk":"^1.21.1","ajv":"^8.17.1","ajv-formats":"^3.0.1","chalk":"^5.2.0","commander":"^11.0.0","ink":"^4.1.0","ink-spinner":"^5.0.0","ink-text-input":"^5.0.1","react":"^18.2.0"},"devDependencies":{"@sindresorhus/tsconfig":"^3.0.1","@types/react":"^18.0.32","@vdemedes/prettier-config":"^2.0.1","@vitest/coverage-v8":"^1.6.1","@vitest/ui":"^1.0.0","eslint-config-xo-react":"^0.27.0","eslint-plugin-react":"^7.32.2","eslint-plugin-react-hooks":"^4.6.0","ink-testing-library":"^3.0.0","prettier":"^2.8.7","ts-node":"^10.9.1","typescript":"^5.0.3","vitest":"^1.0.0","xo":"^0.53.1"},"xo":{"extends":"xo-react","prettier":true,"rules":{"react/prop-types":"off"}},"prettier":"@vdemedes/prettier-config","_id":"@0vv/yolo-cli@0.0.4","gitHead":"c23737d6f035d895dc15a0d924b372bf9c4de470","_nodeVersion":"24.6.0","_npmVersion":"11.5.1","dist":{"integrity":"sha512-DtIpgjkkA5Pu+IPNwOI7YtcHFc9pH9yLIqfk6k/EzaaXq/cwSXxkvXaO/rwW8oTWVxhtD+UuZIbSA1q4HXTJag==","shasum":"83322a291b87dd9e308175d9fcd355100e367f4e","tarball":"https://registry.npmjs.org/@0vv/yolo-cli/-/yolo-cli-0.0.4.tgz","fileCount":184,"unpackedSize":435757,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCJAaYzpqvRX0ZHVcK8UaeN03EBqK1STHi5PqY64xM5FwIhANtNoSqKu7Vgn0onbLg8+lJuWANStSqOb8oPYq5R6trr"}]},"_npmUser":{"name":"0vv","email":"0vv@521.kr"},"directories":{},"maintainers":[{"name":"0vv","email":"0vv@521.kr"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/yolo-cli_0.0.4_1762625287320_0.8858356652134791"},"_hasShrinkwrap":false}},"time":{"created":"2025-11-08T17:51:50.307Z","modified":"2025-11-08T18:08:07.726Z","0.0.1":"2025-11-08T17:51:50.620Z","0.0.2":"2025-11-08T18:01:18.877Z","0.0.3":"2025-11-08T18:06:02.836Z","0.0.4":"2025-11-08T18:08:07.527Z"},"bugs":{"url":"https://github.com/9j/yolo-cli/issues"},"author":{"name":"BAK Chanhee","email":"bak@chanhee.kr"},"license":"MIT","homepage":"https://github.com/9j/yolo-cli#readme","keywords":["ai","cli","chat","openrouter","claude","gpt","gemini","kimi","minimax","glm","terminal","mcp","model-context-protocol"],"repository":{"type":"git","url":"git+https://github.com/9j/yolo-cli.git"},"description":"Interactive AI command-line interface powered by OpenRouter","maintainers":[{"name":"0vv","email":"0vv@521.kr"}],"readme":"# YOLO CLI\n\n> Interactive AI command-line interface powered by OpenRouter\n\nYOLO CLI is a terminal-based application that enables seamless interaction with multiple AI models through OpenRouter's unified API. Built with TypeScript and Ink framework, it provides a keyboard-driven interface where you can cycle through different AI models and maintain conversation context across sessions.\n\n## Features\n\n- 🤖 **Multiple AI Models**: Access to Kimi K2, MiniMax M2, GLM-4.6, and more through OpenRouter\n- ⌨️ **Model Switching**: Cycle through models with Shift+Tab\n- 💬 **Interactive Chat**: Real-time streaming responses\n- 📝 **Multi-line Input**: Support for complex queries\n- 💾 **Multi-Session Support**: Multiple independent conversations per directory with UUID-based session files\n- ⚡ **Slash Commands**: Quick actions with `/clear`, `/new`, `/compact`, `/version`, `/help`, `/exit`\n- 🔍 **Smart Autocomplete**: Intelligent completion for commands (`/`) and file paths (`@`)\n- 🗜️ **Conversation Compaction**: AI-powered summarization to reduce token usage (20+ message threshold)\n- 🔧 **MCP Support**: Automatic Model Context Protocol server loading for extended tool capabilities\n- 🚀 **Fast Setup**: 2-minute first-run configuration\n- 🎨 **Terminal UI**: Clean, keyboard-driven interface\n\n## Prerequisites\n\n- Node.js 18.0.0 or higher\n- OpenRouter API key ([Get one here](https://openrouter.ai/keys))\n\n## Installation\n\n```bash\nnpm install -g @0vv/yolo-cli\n```\n\nOr use npx without installation:\n\n```bash\nnpx @0vv/yolo-cli\n```\n\n## Quick Start\n\n1. Launch YOLO CLI:\n   ```bash\n   yolo\n   ```\n\n   Or if using npx:\n   ```bash\n   npx @0vv/yolo-cli\n   ```\n\n2. Enter your OpenRouter API key when prompted\n\n3. Select models to enable\n\n4. Start chatting!\n\n## Usage\n\n### Interactive Mode\n\n```bash\nyolo\n```\n\nType your query and press Enter. The AI response streams in real-time.\n\n### Cycle Through Models\n\nPress **Shift+Tab** to cycle through your enabled models. The current model appears in the status bar.\n\n### One-Off Query\n\n```bash\nyolo -q \"What is TypeScript?\"\n```\n\n### Specify Model\n\n```bash\nyolo -m anthropic/claude-3-opus -q \"Explain quantum computing\"\n```\n\n### Continue Previous Session\n\n```bash\nyolo --continue\n```\n\n## Keyboard Shortcuts\n\n### Input Navigation\n| Key | Action |\n|-----|--------|\n| **Enter** | Send message |\n| **Shift+Enter** | Insert newline |\n| **←/→** | Move cursor left/right |\n| **Cmd/Ctrl+←** | Move to start of line |\n| **Cmd/Ctrl+→** | Move to end of line |\n| **Ctrl+A** | Move to start of line (Unix-style) |\n| **Ctrl+E** | Move to end of line (Unix-style) |\n| **Backspace** | Delete character before cursor |\n\n### Application Controls\n| Key | Action |\n|-----|--------|\n| **Ctrl+C** | Interrupt streaming request |\n| **Ctrl+D** | Exit YOLO CLI |\n| **Shift+Tab** | Cycle through AI models |\n\n### Autocomplete\n| Key | Action |\n|-----|--------|\n| **Tab** | Complete command or file path (when typing `/` or `@`) |\n| **↑/↓** | Navigate autocomplete suggestions |\n| **Esc** | Cancel autocomplete |\n| **Enter** | Accept suggestion and execute |\n\n## Slash Commands\n\nYOLO CLI supports slash commands with intelligent autocomplete. Type `/` to see available commands:\n\n| Command | Alias | Description |\n|---------|-------|-------------|\n| `/model` | `/models` | Select or change AI model |\n| `/clear` | `/reset` | Clear conversation history (with confirmation) |\n| `/new` | - | Start a new session in current directory |\n| `/compact` | - | Summarize long conversations to reduce context |\n| `/version` | - | Show YOLO CLI version |\n| `/help` | `/h`, `/?` | Show available commands |\n| `/exit` | `/quit` | Exit YOLO CLI |\n\n**Command Autocomplete**: Type `/` to trigger intelligent autocomplete. Use arrow keys to navigate, Tab or Enter to complete, and Esc to cancel. Autocomplete filters commands as you type (e.g., `/cl` shows `/clear`).\n\n**File Path Mentions**: Type `@` to trigger file path autocomplete. Start typing a file name or path to see matching files from your current directory. Use arrow keys to navigate, Tab to complete, and Esc to cancel. For short queries (< 3 characters), only top-level files are shown. For longer queries or paths containing `/`, all matching files are displayed.\n\n**Multi-Session Support**: The `/new` command creates additional session files in `.yolo/history-{uuid}.jsonl` format, allowing you to maintain multiple independent conversations in the same directory.\n\n**Conversation Compaction**: When conversations exceed 20 messages, use `/compact` to summarize older messages while preserving recent context. This reduces token usage and keeps conversations within context limits.\n\n## Configuration\n\nConfiguration is stored at:\n- Linux/macOS: `~/.config/yolo-cli/config.json`\n- Windows: `~/.yolo-cli/config.json`\n\nConversation history is saved in `.yolo/history.jsonl` in each working directory.\n\n### MCP Server Configuration\n\nYOLO CLI supports automatic loading of Model Context Protocol (MCP) servers for extended tool capabilities. Configure MCP servers once and they'll load automatically on startup.\n\n**Global MCP Configuration** (applies to all projects):\n- Linux/macOS: `~/.config/yolo-cli/mcp.json`\n- Windows: `~/.yolo-cli/mcp.json`\n\n**Project-specific MCP Configuration**:\n- `.yolo/mcp.json` in your project directory\n\nExample `mcp.json`:\n```json\n{\n  \"mcpServers\": {\n    \"github\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-github\"],\n      \"env\": {\n        \"GITHUB_TOKEN\": \"your_token_here\"\n      }\n    },\n    \"filesystem\": {\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"@modelcontextprotocol/server-filesystem\", \"/path/to/allowed/directory\"]\n    }\n  }\n}\n```\n\nFor detailed MCP configuration guide, see [MCP Quickstart](./specs/003-auto-mcp-config/quickstart.md).\n\n## Development\n\n```bash\n# Clone repository\ngit clone https://github.com/your-org/yolo-cli.git\ncd yolo-cli\n\n# Install dependencies\nnpm install\n\n# Build\nnpm run build\n\n# Run tests\nnpm test\n\n# Development mode\nnpm run dev\n```\n\n## Documentation\n\n- **Quickstart Guide**: [YOLO CLI Quickstart](./specs/001-openrouter-cli/quickstart.md)\n- **Slash Commands**: [Slash Commands Guide](./specs/004-slash-commands/quickstart.md)\n- **MCP Configuration**: [MCP Quickstart](./specs/003-auto-mcp-config/quickstart.md)\n- **Changelog**: [CHANGELOG.md](./CHANGELOG.md)\n\n## License\n\nMIT\n\n## Support\n\n- **Documentation**: [Full Docs](./specs/001-openrouter-cli/)\n- **Issues**: [GitHub Issues](https://github.com/your-org/yolo-cli/issues)\n- **OpenRouter**: [OpenRouter Docs](https://openrouter.ai/docs)\n","readmeFilename":"README.md"}