Releases: rizwanreza/smartly-cli
Release list
v0.1.2
Tell your shell what you mean. smartly 0.1.2 turns a plain
English sentence into one executable shell command.
Install
go install github.com/rizwanreza/smartly-cli/cmd/smartly@v0.1.2
Or download a binary below (macOS and Linux, amd64 and arm64 — verify
with checksums.txt).
Docs: https://rizwanreza.github.io/smartly-cli/
The macOS binaries are now signed and notarized.
brew install rizwanreza/tap/smartly
What changed
Signed with an Apple Developer ID, notarized by Apple. Both macOS
builds (arm64 and amd64) are signed with a hardened runtime and
registered with Apple's notary service, so Gatekeeper runs them without
complaint. The --no-quarantine flag and the
xattr -d com.apple.quarantine workaround are no longer needed — if you
installed an earlier version with either, a plain brew upgrade is
enough to leave them behind.
Nothing else changed: same commands, same config, same behavior.
Worth knowing
- Auto-run is still the default, including for destructive commands. Put
--dry-runon your first few requests, or runsmartly onboardand
pick a confirmation mode. - Linux binaries are unaffected — they were never quarantined.
Full diff: v0.1.1...v0.1.2
v0.1.1
Tell your shell what you mean. smartly 0.1.1 turns a plain
English sentence into one executable shell command.
Install
go install github.com/rizwanreza/smartly-cli/cmd/smartly@v0.1.1
Or download a binary below (macOS and Linux, amd64 and arm64 — verify
with checksums.txt).
Docs: https://rizwanreza.github.io/smartly-cli/
Changelog
Documentation and site
- e06430f docs: Homebrew install is live, with the Gatekeeper workaround
Everything else
- 2c71602 chore: make every release read like an announcement
- 9292736 chore: publish the cask via deploy key; wire Apple notarization
Full diff: v0.1.0...v0.1.1
v0.1.0
Tell your shell what you mean. smartly 0.1.0 turns a plain
English sentence into one executable shell command.
Install
go install github.com/rizwanreza/smartly-cli/cmd/smartly@v0.1.0
Or download a binary below (macOS and Linux, amd64 and arm64 — verify
with checksums.txt).
Docs: https://rizwanreza.github.io/smartly-cli/
The first public release of smartly.
$ smartly delete all my branches that are already merged into main
→ git branch --merged main | grep -vE '^\*| main$' | xargs git branch -d
What's in it
Four LLM backends behind one interface. anthropic and openai use
API keys; claude-cli and codex-cli shell out to your already-logged-in
claude/codex CLI session instead — no separate key, no separate bill.
The openai provider accepts any OpenAI-compatible endpoint via
base_url (Fireworks, vLLM, LM Studio, Azure OpenAI).
Three execution modes. auto runs the generated command immediately
(the default — deliberately). confirm always asks. confirm-destructive
asks only when a local static classifier thinks the command changes
something — ls runs straight through, rm -rf stops and explains
itself, and anything the classifier doesn't recognize also asks, on the
principle that a seatbelt that silently passes what it doesn't recognize
is worse than no seatbelt. --confirm, -y, and --dry-run override
per invocation.
It knows where it is. By default smartly sends a capped directory
listing and your git branch/status/worktrees, so "all my merged branches"
resolves against your actual repository. It also generates commands for
your OS — sed -i '' on macOS, sed -i on Linux.
Interactive onboarding. smartly onboard walks through every setting
with a keyboard-driven flow: it detects which providers are actually
available, never asks for an API key (it checks the environment and
prints the export line if missing), requires a second confirmation before
enabling shell-history context, and writes nothing until you approve the
final config.
Shell integration. eval "$(smartly init zsh)" (or bash) makes
generated cd and export commands affect the shell you're typing in —
a subprocess can't do that on its own.
An honest audit trail. Every request and outcome is appended to a
JSONL history log, including the classifier's risk verdict for every
command — so even in auto mode you can go back and see exactly what ran
without asking.
Worth knowing
- Auto-run is the default, including for destructive commands. Put
--dry-runon your first few requests, or runsmartly onboardand
pick a confirmation mode. - The destructive-command classifier is a best-effort seatbelt, not a
sandbox — false negatives are possible by construction. - Windows/PowerShell isn't supported yet.