{"_id":"@alnyx/klyxor","_rev":"5-b6e8b4f42d000ed6eccaf749b2ffb949","name":"@alnyx/klyxor","dist-tags":{"latest":"1.2.0"},"versions":{"1.0.0":{"name":"@alnyx/klyxor","version":"1.0.0","_id":"@alnyx/klyxor@1.0.0","maintainers":[{"name":"alnyx-dev","email":"alexsamus19@gmail.com"}],"bin":{"klyxor":"dist/cli.js"},"dist":{"shasum":"13d92a9d5ddafc62bf8058cc4818978156ee9690","tarball":"https://registry.npmjs.org/@alnyx/klyxor/-/klyxor-1.0.0.tgz","fileCount":82,"integrity":"sha512-K+XSrgLTgw6Uoerzp0tX4RdiqD/MxJrFqqcHaeLfn8QTobo3NvPjojzt76tGRZ7ODkh/03mZ1kBotmVDGK8Wjg==","signatures":[{"sig":"MEUCIFy3rpvhIjiVMrZceByoTgS8cxXZ1M7lCwAQn8wcZA4RAiEAvOHKKo9rPc0BKnpKXdGAo+Xy8XihaTJR2T4HMjf2t7A=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325170},"type":"module","gitHead":"0caeb9833e8168aec8b1b904b7d3c03f25a01027","scripts":{"dev":"tsx src/cli.tsx","build":"tsc","postinstall":"tsc"},"_npmUser":{"name":"alnyx-dev","email":"alexsamus19@gmail.com"},"_npmVersion":"11.13.0","description":"A coding agent with Plan/Build modes, subagent delegation, lazy-loaded skills, and a terminal chat interface.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.6","ink-text-input":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","typescript":"^5.5.0","@types/node":"^20.14.0","@types/react":"^18.3.3"},"_npmOperationalInternal":{"tmp":"tmp/klyxor_1.0.0_1784503025231_0.8205784449387714","host":"s3://npm-registry-packages-npm-production"}},"1.0.1":{"name":"@alnyx/klyxor","version":"1.0.1","_id":"@alnyx/klyxor@1.0.1","maintainers":[{"name":"alnyx-dev","email":"alexsamus19@gmail.com"}],"bin":{"klyxor":"dist/cli.js"},"dist":{"shasum":"03803db5cf2ad615864f9c6fe8868be11d8d6568","tarball":"https://registry.npmjs.org/@alnyx/klyxor/-/klyxor-1.0.1.tgz","fileCount":82,"integrity":"sha512-EgNA1p0bSNo+yIVcA2+kgMdlMTONqdCqIFOj+XChadF+7/tk4JpuqlUY+7B8t+T2QnEc5JyLLjlskFmejJleTA==","signatures":[{"sig":"MEQCIF+7Kx/C6wKCkIn5xFiwd9xbBlGZNAiA7ounUYf44z1AAiAFW8xV5dzy/P5mQP4vlZNDanJ0pJTFIMUcTH4X5uppGA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":325143},"type":"module","gitHead":"2b929f32f41689c49bd4f449879125a71c2ea357","scripts":{"dev":"tsx src/cli.tsx","build":"tsc"},"_npmUser":{"name":"alnyx-dev","email":"alexsamus19@gmail.com"},"_npmVersion":"11.13.0","description":"A coding agent with Plan/Build modes, subagent delegation, lazy-loaded skills, and a terminal chat interface.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.6","ink-text-input":"^6.0.0"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","typescript":"^5.5.0","@types/node":"^20.14.0","@types/react":"^18.3.3"},"_npmOperationalInternal":{"tmp":"tmp/klyxor_1.0.1_1784547300671_0.7066335216179114","host":"s3://npm-registry-packages-npm-production"}},"1.1.0":{"name":"@alnyx/klyxor","version":"1.1.0","_id":"@alnyx/klyxor@1.1.0","maintainers":[{"name":"alnyx-dev","email":"alexsamus19@gmail.com"}],"bin":{"klyxor":"dist/cli.js"},"dist":{"shasum":"4e489e5a1f995249badac81a567d98be42e8e77b","tarball":"https://registry.npmjs.org/@alnyx/klyxor/-/klyxor-1.1.0.tgz","fileCount":122,"integrity":"sha512-GjKmTcdyvpRxDSYi+mkiAuOrRi1PboOAE5YJMw6wsFabgEJd50B+wKKFin7LpV7XH3I5YRwDX0ZCfwLHK0X7BQ==","signatures":[{"sig":"MEQCIHhWadDwUCusTdrXiVyzf17JfGF1tyQ8AMuGTBSjroczAiAOLOrU1x/GeeA8j0BaAdjvwrEqf0a60dpRyzeOK4aelA==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":672250},"type":"module","gitHead":"d50b3c1c04314765e0509d0e6da71378c90449df","scripts":{"dev":"tsx src/cli.tsx","build":"tsc"},"_npmUser":{"name":"alnyx-dev","email":"alexsamus19@gmail.com"},"_npmVersion":"11.13.0","description":"A coding agent with Plan/Build modes, subagent delegation, lazy-loaded skills, and a terminal chat interface.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.6","ink-text-input":"^6.0.0","@modelcontextprotocol/client":"^2.0.0-beta.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","typescript":"^5.5.0","@types/node":"^20.14.0","@types/react":"^18.3.3"},"_npmOperationalInternal":{"tmp":"tmp/klyxor_1.1.0_1784636272245_0.2763331907637623","host":"s3://npm-registry-packages-npm-production"}},"1.1.1":{"name":"@alnyx/klyxor","version":"1.1.1","_id":"@alnyx/klyxor@1.1.1","maintainers":[{"name":"alnyx-dev","email":"alexsamus19@gmail.com"}],"bin":{"klyxor":"dist/cli.js"},"dist":{"shasum":"96f764e506a3462462db57b888d96ea1d38ff395","tarball":"https://registry.npmjs.org/@alnyx/klyxor/-/klyxor-1.1.1.tgz","fileCount":122,"integrity":"sha512-TmGPpArbhtxfVWTo3UKqweOpXPVSVFGxMc/cuThkkFhAGtnaGkRRma5EEJNgIHsOC6V8bMNMQJYs0YZFUsWJOg==","signatures":[{"sig":"MEYCIQCDmPHDS9x7dJK0x5fQ9ApoKhyaAqcSy2AhNl7IiTFxIwIhAPlNDTxNgmB+ij+pxhcnrsGodHsYPXIwqfFn5SfvjGhT","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":672250},"type":"module","gitHead":"724ca1c522feb6794efd15ffd83f8c619fdd71da","scripts":{"dev":"tsx src/cli.tsx","build":"tsc"},"_npmUser":{"name":"alnyx-dev","email":"alexsamus19@gmail.com"},"_npmVersion":"11.13.0","description":"A coding agent with Plan/Build modes, subagent delegation, lazy-loaded skills, and a terminal chat interface.","directories":{},"_nodeVersion":"24.16.0","dependencies":{"ink":"^5.1.0","react":"^18.3.1","marked":"^18.0.6","ink-text-input":"^6.0.0","@modelcontextprotocol/client":"^2.0.0-beta.4"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.16.0","typescript":"^5.5.0","@types/node":"^20.14.0","@types/react":"^18.3.3"},"_npmOperationalInternal":{"tmp":"tmp/klyxor_1.1.1_1784636435552_0.4174857767943252","host":"s3://npm-registry-packages-npm-production"}},"1.2.0":{"name":"@alnyx/klyxor","version":"1.2.0","description":"A coding agent with Plan/Build modes, subagent delegation, lazy-loaded skills, and a terminal chat interface.","type":"module","bin":{"klyxor":"dist/cli.js"},"scripts":{"dev":"tsx src/cli.tsx","build":"tsc"},"dependencies":{"@modelcontextprotocol/client":"^2.0.0-beta.4","ink":"^5.1.0","ink-text-input":"^6.0.0","marked":"^18.0.6","react":"^18.3.1"},"devDependencies":{"@types/node":"^20.14.0","@types/react":"^18.3.3","tsx":"^4.16.0","typescript":"^5.5.0"},"gitHead":"6c897a18f25a433217a0a2f24c7e241b4f800b0d","_id":"@alnyx/klyxor@1.2.0","_nodeVersion":"24.16.0","_npmVersion":"11.13.0","dist":{"integrity":"sha512-kOHlF3toSxqcBQ7YicmZJiU/NY8ClQTV6C4A78tKTbWNEP8DemMc7nkL/0nuqlWKoJb8E4X89c4mqK3csIbsmQ==","shasum":"17fde90a373ed7ad0daef3109ee6f66c13787ec5","tarball":"https://registry.npmjs.org/@alnyx/klyxor/-/klyxor-1.2.0.tgz","fileCount":122,"unpackedSize":687092,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCq+3eBAMBoutbNci5zKCOAPR3eUQYkIyrrKakrlXM9OwIhAL1fAVrTLzy5CIXwtwip5oRiF/ZjbQJiDSHL65WwlQNN"}]},"_npmUser":{"name":"alnyx-dev","email":"alexsamus19@gmail.com"},"directories":{},"maintainers":[{"name":"alnyx-dev","email":"alexsamus19@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/klyxor_1.2.0_1784638571595_0.4393439574752229"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-19T23:17:05.030Z","modified":"2026-07-21T12:56:12.894Z","1.0.0":"2026-07-19T23:17:05.365Z","1.0.1":"2026-07-20T11:35:00.820Z","1.1.0":"2026-07-21T12:17:52.447Z","1.1.1":"2026-07-21T12:20:35.775Z","1.2.0":"2026-07-21T12:56:11.727Z"},"description":"A coding agent with Plan/Build modes, subagent delegation, lazy-loaded skills, and a terminal chat interface.","maintainers":[{"name":"alnyx-dev","email":"alexsamus19@gmail.com"}],"readme":"<div align=\"center\">\n\n# ⚡ klyxor\n\n**AI coding agent CLI** with Plan/Build modes, subagent delegation, multi-provider LLM support, streaming, MCP integration, and a terminal UI.\n\n[![Node.js](https://img.shields.io/badge/Node.js-18+-339933?logo=node.js&logoColor=white)](https://nodejs.org)\n[![TypeScript](https://img.shields.io/badge/TypeScript-5-3178C6?logo=typescript&logoColor=white)](https://typescriptlang.org)\n[![License: ISC](https://img.shields.io/badge/License-ISC-blue.svg)](LICENSE)\n\n</div>\n\n---\n\n## ✨ Features\n\n### Core\n\n| Feature | Description |\n|---------|-------------|\n| 🎯 **Plan/Build Modes** | Read-only planning vs full-access execution |\n| ⚡ **Streaming Responses** | Real-time token streaming from LLM — see responses as they arrive |\n| 🛡️ **Error Recovery** | Smart retry with exponential backoff, rate-limit handling, fallback model support |\n| 🔄 **Parallel Subagents** | Spawn multiple agents in parallel for concurrent task execution |\n| 🤖 **Subagent Delegation** | Spawn specialized agents for complex tasks (max depth 2) |\n| 🔀 **Multi-Provider LLM** | Multiple providers, each with multiple models — switch on the fly |\n| 📦 **Update Checker** | Auto-checks npm registry for updates on startup |\n\n### Tools\n\n| Tool | Description |\n|------|-------------|\n| 📝 **read_file / write_file / edit_file** | Full file operations with line-precision editing |\n| 🔍 **grep** | Regex search across project files |\n| 📁 **list_files / tree** | Directory listing and tree visualization |\n| 🌐 **web_fetch** | Fetch URLs and extract readable text |\n| 🔧 **git_status / git_diff** | Version control context |\n| 📋 **todo_list** | Task tracking during execution |\n| 🔑 **env_read** | Read environment variables |\n| 📊 **file_info** | File metadata (size, dates, permissions) |\n| 🔀 **copy_file / move_file** | File operations (destructive — blocked in plan mode) |\n| 📄 **diff_apply** | Apply unified diff patches |\n| 🔗 **http_request** | HTTP requests (GET/POST/PUT/DELETE) with headers/body |\n| 📦 **json_query** | Read JSON files with dot-notation navigation |\n| 🔐 **hash** | File/string hashing (md5/sha1/sha256) |\n| 📋 **base64** | Base64 encode/decode |\n| 🌳 **git_worktree** | Manage git worktrees for parallel development |\n| 🛠️ **custom_tools** | User-defined tools via JSON config |\n| 🔗 **pipeline** | Chain commands with template interpolation |\n| 🔄 **spawn_parallel** | Parallel subagent execution |\n| 🤖 **delegate** | Single subagent delegation |\n\n### Intelligence\n\n| Feature | Description |\n|---------|-------------|\n| 🔍 **Refactoring Engine** | Analyze code, generate refactoring plans, execute with validation |\n| 🤖 **Multi-Agent Orchestrator** | Specialized agents (frontend, backend, database, devops, security, testing, docs) |\n| ⏰ **Time Machine** | Create snapshots, restore, compare, branch your codebase |\n| 🐛 **Predictive Bug Detector** | Pattern-based bug prediction across 25+ categories |\n\n### MCP Integration\n\n| Feature | Description |\n|---------|-------------|\n| 🔌 **MCP Support** | Connect to Model Context Protocol servers |\n| 🧩 **MCP Tool Bridging** | Bridge MCP tools as agent tools (`mcp_<server>_<tool>`) |\n| 🔧 **MCP Commands** | `/mcp list`, `/mcp connect`, `/mcp disconnect` |\n\n### UI & Experience\n\n| Feature | Description |\n|---------|-------------|\n| 📋 **Tabbed Command Palette** | Sessions, Providers, Mode, Actions — all from one menu |\n| 📝 **Markdown Chat** | Messages render with full Markdown support |\n| 🧩 **Skills System** | Lazy-loaded `.md` skill files from `.klyxor/skills/` |\n| 💾 **Session Persistence** | Sessions saved to `.klyxor/sessions.json` |\n| ⏳ **Animated Spinner** | Visual loading indicator with tool name display |\n| ⚡ **Tool Display** | Structured tool call/result display in chat |\n| 📦 **Context Compaction** | Auto-summarizes old conversation turns when messages exceed threshold |\n| 📂 **Project Context** | Auto-loads `AGENTS.md` / `KLYXOR.md` / `.klyxor/context.md` |\n| 💰 **Token & Cost Tracking** | Per-model usage statistics and estimated costs |\n| 📝 **Session Export** | Export chat transcripts to Markdown files |\n| 🔑 **Env-Var API Keys** | API keys support `${ENV_VAR}` expansion with `KLYXOR_API_KEY` fallback |\n\n---\n\n## 🚀 Quick Start\n\n```bash\n# Install globally via npm\nnpm install -g @alnyx/klyxor\n\n# Run from any directory\nklyxor\n\n# Or use one-shot mode\nklyxor --plan \"analyze this project\"\nklyxor --build \"add a new API endpoint\"\n```\n\nFor development:\n\n```bash\nnpm run dev          # Run with tsx (hot reload)\nnpm run build        # Build to dist/\n```\n\nOn first launch, klyxor creates `~/.klyxor/` in your home directory with config, sessions, and skills.\n\n---\n\n## ⚙️ Configuration\n\nAll configuration lives in `~/.klyxor/` (your home directory):\n\n```\n~/.klyxor/\n├── config.json       # Provider settings, API keys, active model, MCP servers\n├── sessions.json     # Chat session history\n├── skills/           # Custom skill files (.md)\n├── tools/            # Custom tool definitions (.json)\n├── snapshots/        # Time Machine snapshots\n└── exports/          # Exported session transcripts\n```\n\n### Providers\n\nAdd providers via the command palette (`Ctrl+P` → **Providers** tab):\n\n| Key | Action |\n|-----|--------|\n| `A` | Add new provider (name, base URL, model, API key) |\n| `a` | Add model to existing provider |\n| `Enter` | Select active model from provider's model list |\n| `d` | Delete provider |\n\nOr use slash commands:\n\n```\n/connect openai gpt-4o\n/connect anthropic/claude-sonnet-4-20250514\n```\n\n### Models\n\nEach provider supports **multiple models**. Switch between them from the command palette or via:\n\n```\n/connect provider/model\n```\n\n### MCP Servers\n\nConfigure MCP servers in `~/.klyxor/config.json`:\n\n```json\n{\n  \"mcpServers\": [\n    {\n      \"name\": \"my-server\",\n      \"transport\": \"stdio\",\n      \"command\": \"node\",\n      \"args\": [\"./my-mcp-server.js\"]\n    }\n  ]\n}\n```\n\nThen connect:\n```\n/mcp list\n/mcp connect my-server\n```\n\n---\n\n## 🎮 Keyboard Shortcuts\n\n### Command Palette (`Ctrl+P`)\n\n```\n┌─────────────────────────────────────────────────────┐\n│  Sessions │ Providers │ Mode │ Actions              │\n├─────────────────────────────────────────────────────┤\n│  h / ←    — switch tab left                         │\n│  l / →    — switch tab right                        │\n│  1-4      — jump to tab directly                    │\n│  j / ↓    — navigate down                           │\n│  k / ↑    — navigate up                             │\n│  Enter    — select item / open model list           │\n│  n        — new session    (Sessions tab)           │\n│  a        — add model      (Providers tab)          │\n│  A        — add provider   (Providers tab)          │\n│  d        — delete item                             │\n│  Esc      — close palette                           │\n└─────────────────────────────────────────────────────┘\n```\n\n### Chat\n\n| Key | Action |\n|-----|--------|\n| `Ctrl+P` | Open command palette |\n| `Ctrl+C` | Exit |\n\n---\n\n## 📁 Project Structure\n\n```\nsrc/\n├── cli.tsx                  # Entry point\n├── agent.ts                 # Core agent loop (tool-calling)\n├── llm.ts                   # LLM HTTP client with streaming + error recovery\n├── tools.ts                 # Tool definitions (30+ tools)\n├── commands.ts              # Slash commands\n├── config.ts                # Provider config, MCP config, .klyxor/ init\n├── constants.ts             # Centralized constants\n├── sessions.ts              # Session persistence + todo list\n├── skills.ts                # Skill system\n├── usage.ts                 # Token/cost tracking per model\n├── compact.ts               # Context compaction (summarize old turns)\n├── context.ts               # Project context auto-loader\n├── export.ts                # Session export to Markdown\n├── mcp.ts                   # MCP client manager\n├── refactoring-engine.ts    # Code analysis + refactoring\n├── multi-agent.ts           # Multi-agent orchestrator\n├── time-machine.ts          # Codebase snapshots + branching\n├── predictive-bugs.ts       # Pattern-based bug detection\n├── subagent-pool.ts         # Parallel subagent execution\n├── git-worktree.ts          # Git worktree management\n├── custom-tools.ts          # User-defined tools\n├── pipeline.ts              # Command chaining engine\n├── update-checker.ts        # npm update checker\n└── tui/\n    ├── App.tsx              # Main app layout\n    ├── CommandPalette.tsx   # Tabbed menu\n    ├── Header.tsx           # Header with mode indicator\n    ├── MarkdownText.tsx     # Markdown renderer\n    ├── ProviderPicker.tsx   # Legacy provider picker\n    ├── SessionPicker.tsx    # Session list\n    └── Spinner.tsx          # Animated loading indicator\n```\n\n---\n\n## 🎨 Constants\n\nAll magic numbers and hardcoded values are centralized in `src/constants.ts`:\n\n| Category | Examples |\n|----------|----------|\n| ⏱️ Timeouts | Bash (120s), LLM fetch (120s), web fetch (20s), MCP (30s) |\n| 📊 Limits | Max turns (200), file read (2000 lines), grep results (200) |\n| 🎨 UI | Brand color (`#51ff48`), separator widths, preview lengths |\n| 🤖 LLM | Temperature (0.1), max tokens (4096), endpoint, retry (3 attempts) |\n| 🛡️ Error Recovery | Max retries (3), base delay (1s), max delay (30s), fallback model |\n| ⚡ Streaming | Stream enabled by default |\n| 📦 Compaction | Threshold (60 messages), keep recent (20) |\n| 🔌 MCP | Connect timeout (30s), tool call timeout (60s), max tools (100) |\n| 🔍 Refactoring | Max file lines (500), duplication threshold, complexity threshold |\n| 🤖 Multi-Agent | Max concurrent (5), task timeout (120s) |\n| ⏰ Time Machine | Max snapshots (100), max files (50) |\n| 🐛 Predictive Bugs | Max nesting (5), max function length (50), max returns (10) |\n| 🌳 Git Worktree | Base dir (`.klyxor/worktrees`) |\n| 🛠️ Custom Tools | Tools dir (`.klyxor/tools`), max tools (50) |\n| 🔗 Pipeline | Max steps (20), step timeout (60s) |\n| 📁 Skip | `.git`, `__pycache__`, `node_modules`, `.klyxor` |\n\n---\n\n## 💬 Slash Commands\n\n| Command | Description |\n|---------|-------------|\n| `/help` | Show available commands |\n| `/plan` | Switch to Plan mode (read-only) |\n| `/build` | Switch to Build mode (full access) |\n| `/reset` | Clear session history |\n| `/sessions [name]` | List sessions or switch to one |\n| `/new [name]` | Create and switch to a new session |\n| `/connect [name]` | Switch provider or list available |\n| `/model [name]` | Show current model or switch |\n| `/skills` | List available skills |\n| `/skills create <name>` | Create a new skill |\n| `/skills info <name>` | Show skill details |\n| `/skills find <query>` | Find skills matching a file or task |\n| `/cost` | Show token usage and estimated cost |\n| `/tokens` | Alias for `/cost` |\n| `/tools` | List available tools in current mode |\n| `/export [path]` | Export session to Markdown file |\n| `/compact` | Manually compress conversation history |\n| `/mcp list` | List MCP servers and their tools |\n| `/mcp connect <name>` | Connect to an MCP server |\n| `/mcp disconnect <name>` | Disconnect from an MCP server |\n| `/update` | Check for klyxor updates |\n| `/exit`, `/quit` | Save and exit |\n\n---\n\n## 📄 License\n\n[ISC](LICENSE)\n","readmeFilename":"README.md"}