{"_id":"@arcasilesgroup/ai-shell","_rev":"2-6a6cc797eb75d6c88d18f547b619f40d","name":"@arcasilesgroup/ai-shell","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@arcasilesgroup/ai-shell","version":"0.1.1","_id":"@arcasilesgroup/ai-shell@0.1.1","maintainers":[{"name":"arcasiles","email":"info@arcasiles.com"}],"homepage":"https://github.com/arcasilesgroup/ai-shell#readme","bugs":{"url":"https://github.com/arcasilesgroup/ai-shell/issues"},"bin":{"ai":"dist/cli.mjs","ai-shell":"dist/cli.mjs"},"dist":{"shasum":"0b2327252335be310b4248456de13cfe5fbbbf03","tarball":"https://registry.npmjs.org/@arcasilesgroup/ai-shell/-/ai-shell-0.1.1.tgz","fileCount":4,"integrity":"sha512-KPkY8uYDwlmvLsqPvGnEBHGLDMjghbTkpWdu3Fjx6Hn/IKvtJEWvp5l4DGi8b1ng7LVetD3hrUPVAzSLW2/B6A==","signatures":[{"sig":"MEQCIAbSK9sqGwVYg2Qadyg3kKu1sdlT3/2kHrEdzN3Z6zpgAiB0+VlorshTufgoNV9eNntcSeuWgYVGq/hmS5fN+AVJgQ==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":88432},"type":"module","engines":{"node":">=22"},"gitHead":"7bb3ef4e8e7097e562773cc183ec3bc4a7c19df8","scripts":{"lint":"prettier --check . && eslint","build":"pkgroll","start":"jiti ./src/cli.ts","lint:fix":"prettier --write . && eslint --fix","typecheck":"tsc"},"_npmUser":{"name":"arcasiles","email":"info@arcasiles.com"},"repository":{"url":"git+https://github.com/arcasilesgroup/ai-shell.git","type":"git"},"_npmVersion":"12.0.2","description":"A CLI that converts natural language to shell commands, with any OpenAI-compatible provider.","directories":{},"_nodeVersion":"26.7.0","dependencies":{"ini":"^4.0.0","axios":"^1.3.5","cleye":"^2.6.0","execa":"^7.1.1","dedent":"^1.7.2","openai":"^7.8.0","i18next":"^26.4.0","kolorist":"^1.8.0","@nexssp/os":"^2.0.36","clipboardy":"^2.3.0","@clack/core":"1.4.3","@clack/prompts":"1.7.0","@dqbd/tiktoken":"^1.0.22"},"publishConfig":{"access":"public","provenance":true},"_hasShrinkwrap":false,"devDependencies":{"jiti":"^1.17.0","eslint":"^8.38.0","pkgroll":"^2.28.1","prettier":"^2.8.8","@types/ini":"^1.3.31","typescript":"5.9.2","@types/node":"^18.15.11","@types/dedent":"^0.7.2","@changesets/cli":"3.0.1","@typescript-eslint/parser":"^5.57.1","@changesets/changelog-github":"1.0.0","eslint-plugin-unused-imports":"^2.0.0","@typescript-eslint/eslint-plugin":"^5.57.1"},"_npmOperationalInternal":{"tmp":"tmp/ai-shell_0.1.1_1787962260671_0.5521283145084426","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@arcasilesgroup/ai-shell","description":"A CLI that converts natural language to shell commands, with any OpenAI-compatible provider.","version":"0.1.2","type":"module","engines":{"node":">=22"},"dependencies":{"@clack/core":"1.4.3","@clack/prompts":"1.7.0","@dqbd/tiktoken":"^1.0.22","@nexssp/os":"2.0.36","axios":"^1.3.5","cleye":"^2.6.0","clipboardy":"^2.3.0","dedent":"^1.7.2","execa":"^7.1.1","i18next":"^26.4.0","ini":"^4.0.0","kolorist":"^1.8.0","openai":"^7.8.0"},"repository":{"type":"git","url":"git+https://github.com/arcasilesgroup/ai-shell.git"},"bin":{"ai":"dist/cli.mjs","ai-shell":"dist/cli.mjs"},"publishConfig":{"access":"public","provenance":true},"scripts":{"start":"jiti ./src/cli.ts","lint:fix":"prettier --write . && eslint --fix","lint":"prettier --check . && eslint","typecheck":"tsc","build":"pkgroll"},"devDependencies":{"@changesets/changelog-github":"1.0.0","@changesets/cli":"3.0.1","@types/dedent":"^0.7.2","@types/ini":"^1.3.31","@types/node":"^18.15.11","@typescript-eslint/eslint-plugin":"^5.57.1","@typescript-eslint/parser":"^5.57.1","eslint":"^8.38.0","eslint-plugin-unused-imports":"^2.0.0","jiti":"^1.17.0","pkgroll":"^2.28.1","prettier":"^2.8.8","typescript":"5.9.2"},"gitHead":"5cdeabd0d2063705afbc9414de8123c0da4adb64","_id":"@arcasilesgroup/ai-shell@0.1.2","bugs":{"url":"https://github.com/arcasilesgroup/ai-shell/issues"},"homepage":"https://github.com/arcasilesgroup/ai-shell#readme","_nodeVersion":"22.23.2","_npmVersion":"11.19.1","dist":{"integrity":"sha512-uXDVK0N1qPFKVGOKqSLvZ3pccduqxqOpFSIDge7h0YN3h7ITcylhk9AASVT00b1XPgr/Yh72FFNXOoSEwjBNdA==","shasum":"339817244750edb89128d92f49c5278e14d2d2f6","tarball":"https://registry.npmjs.org/@arcasilesgroup/ai-shell/-/ai-shell-0.1.2.tgz","fileCount":4,"unpackedSize":88431,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@arcasilesgroup%2fai-shell@0.1.2","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICTdndllQebTcBF0+N23pHH3uPWSEsitjQYGNxe1Nuk2AiABotzfFZc8Wz67ow+8iEUl7+DHJANn1BLyVZAiKfBoQw=="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:4f57151d-85cb-45a6-99f9-542d9659e4f0"}},"directories":{},"maintainers":[{"name":"arcasiles","email":"info@arcasiles.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/ai-shell_0.1.2_1787995260810_0.31867457859691894"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-29T00:11:00.503Z","modified":"2026-08-29T09:21:01.297Z","0.1.1":"2026-08-29T00:11:00.813Z","0.1.2":"2026-08-29T09:21:00.916Z"},"bugs":{"url":"https://github.com/arcasilesgroup/ai-shell/issues"},"homepage":"https://github.com/arcasilesgroup/ai-shell#readme","repository":{"type":"git","url":"git+https://github.com/arcasilesgroup/ai-shell.git"},"description":"A CLI that converts natural language to shell commands, with any OpenAI-compatible provider.","maintainers":[{"name":"arcasiles","email":"info@arcasiles.com"}],"readme":"<p align=\"center\">\n   <img src=\"assets/images/ai-shell-banner.jpg\" alt=\"AI Shell — a CLI that turns natural language into shell commands\" width=\"100%\">\n</p>\n\n<h1 align=\"center\">AI Shell</h1>\n\n<h4 align=\"center\">\n   A CLI that turns natural language into shell commands.\n</h4>\n\n<p align=\"center\">\n   With your own API key, with the provider you choose.\n</p>\n\n<br>\n\n# AI Shell\n\n## Setup\n\n> The minimum supported Node.js version is v22.\n\n1. Install AI Shell:\n\n   ```sh\n   npm install -g @arcasilesgroup/ai-shell\n   ```\n\n2. Run the provider wizard:\n\n   ```sh\n   ai config\n   ```\n\n   Pick your provider (OpenAI, NaN Builders, OpenRouter, Groq, Together, Ollama, LM Studio, llama.cpp, or your own endpoint), paste your API key, and the wizard lists the real models from your endpoint (`GET /v1/models`) and runs a connection test before saving.\n\n   You can also configure everything by hand in `~/.ai-shell`, a plain INI file:\n\n   ```ini\n   PROVIDER=nan\n   API_KEY=sk-...\n   API_ENDPOINT=https://api.nan.builders/v1\n   MODEL=qwen3.8-flash\n   ```\n\n   Any OpenAI-compatible API works (`/v1/chat/completions`). With local servers (Ollama, LM Studio, llama.cpp) the key can be any value.\n\n   > Legacy `OPENAI_KEY` / `OPENAI_API_ENDPOINT` keys are still read if you already have them; on write, they are saved under the new names.\n\n3. Check anytime that your configuration works:\n\n   ```sh\n   ai config test\n   ```\n\n## Usage\n\n```bash\nai <prompt>\n```\n\nFor example:\n\n```bash\nai list all log files\n```\n\nYou get the suggested command and can choose to run it, edit it, ask for a revision, or copy it.\n\n### Special characters\n\nSome shells treat characters like `?` or `*` specially. If you get strange behavior, wrap the prompt in quotes:\n\n```bash\nai 'what is my ip address'\n```\n\n### Chat mode\n\n```bash\nai chat\n```\n\nA continuous conversation in your terminal; history stays in memory until you `exit`.\n\n### Silent mode (skip explanations)\n\n```bash\nai -s list all log files\n```\n\nor as a saved preference:\n\n```sh\nai config set SILENT_MODE=true\n```\n\n### Language\n\n```sh\nai config set LANGUAGE=es\n```\n\nAvailable keys: `en`, `es`, `zh-Hans`, `zh-Hant`, `fr`, `de`, `it`, `pt`, `ru`, `uk`, `tr`, `ar`, `id`, `vi`, `jp`, `ko`.\n\n### Action icons\n\nThe run/revise menu is plain by default — clack's cursor and color already mark the selection. If your terminal uses a Nerd Font (e.g. `brew install font-jetbrainsmono-nerd-font`), you can opt into glyphs:\n\n```sh\nai config set ICONS=nerd\n```\n\n## Privacy\n\n- The CLI runs 100% on your machine. Prompts travel only from your terminal to the endpoint you configure.\n- No telemetry, no middle backend, no accounts.\n- Executed commands are appended to your own `.zsh_history` / `.bash_history`.\n\n## Built and maintained with ai-engineering\n\nThis repository is built and maintained with [ai-engineering](https://github.com/arcasilesgroup/ai-engineering) — the governance framework for AI-assisted development by Arcasiles Group. Quality gates, security scanning, and risk management run locally through git hooks and in CI:\n\n```sh\nuv tool install ai-engineering\nai-eng init          # this machine, and this repository if you say yes\njust check           # the exact gate CI runs\n```\n\nThe rules of the house are in [CONSTITUTION.md](CONSTITUTION.md) and [AGENTS.md](AGENTS.md); release versions come from changesets and publish through CI with OIDC provenance — never from a laptop.\n\n## Updating\n\n```bash\nai update\n```\n\n## Contributing\n\nBugs and feature requests in [Issues](https://github.com/arcasilesgroup/ai-shell/issues). Setup details in [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## Credits\n\n- Based on [BuilderIO/ai-shell](https://github.com/BuilderIO/ai-shell) (MIT), whose legal attribution is kept in `LICENSE`.\n","readmeFilename":"README.md"}