English | Türkçe
clily turns natural language into a single shell command, checks it against local safety rules, and lets you run or cancel it.
NPM package: @emiran/clily
CLI command: clily
- Turn plain English into shell commands
- Keep a local safety layer between the model and your terminal
- Review the generated command before execution
- Reuse local context such as recent shell history and the last command result
- Work across Windows, macOS, and Linux
- Gemini, Groq, OpenAI, and OpenRouter provider support
- Interactive setup wizard
- Safety modes:
safe,balanced,auto - Local
allowlist,warnlist, anddenylist - Secure local API key storage
- Config management from the CLI
- Config health check with
clily config doctor - Terminal UI with readable previews and confirmations
- Windows: PowerShell and CMD
- macOS: bash and zsh
- Linux: bash and zsh
Clily detects your current shell and asks the model for shell-appropriate commands.
Requirements: Node.js >=20.11.0
npm install -g @emiran/clilyClily may occasionally check whether a newer npm version is available.
Disable this with CLILY_DISABLE_UPDATE_CHECK=1.
Run setup first:
clily --setupYou can also run setup again later with:
clily setupThen try a few prompts:
clily "show git status"
clily "check whether Ruby is installed"
clily "list running Docker containers"If local rules allow it, you can also run directly:
clily "show Node.js version" --run--run tells Clily to execute the generated command when your safety mode allows it.
- You write a natural-language request.
- Clily asks the selected model for one shell command.
- The command is checked against local safety rules.
- Clily shows a preview with command, risk, and reason.
- Clily asks for confirmation or runs it directly, depending on your mode.
Clily uses three local rule groups:
allowlist: trusted commandswarnlist: commands that should require confirmationdenylist: commands that should be blocked
Safety modes:
safe: always ask before runningbalanced: allow trusted commands to auto-run, confirm othersauto: run commands without confirmation unless a local rule blocks them
Manage rules from the CLI:
clily safety allow list
clily safety allow add "git status"
clily safety warn add "docker rm *"
clily safety deny add "rm -rf *"Useful commands:
clily config show
clily config path
clily config doctor
clily config set mode auto
clily config set provider.name groq
clily config set provider.model openai/gpt-oss-20b
clily config set provider.apiKey YOUR_KEYclily config doctor checks for common setup, config, and API key problems.
- secret-like values can be masked before context is sent to a provider
- shell history can be enabled, limited, or disabled
- the last command result can be reused as local context
- Model selection is available during setup
- Works best today with
openai/gpt-oss-20bandopenai/gpt-oss-120b
- Defaults to
gpt-4o-mini
- Model selection is available during setup
For local development:
npm install
npm run check
npm run build
npm run test
npm run dev -- --setupPackage preflight:
npm packIssues and pull requests are welcome.
- Bug reports and feature requests: use GitHub Issues
- Code contributions: open a pull request
- Before opening a PR, run:
npm run check
npm run build
npm run testMore details: CONTRIBUTING.md
If something looks wrong or confusing:
- open an issue for bugs or unexpected behavior
- open an issue for docs or setup problems
- include your platform, shell, provider, and the command you ran when possible


