{"id":51973610,"url":"https://github.com/itinance/is-cli","last_synced_at":"2026-07-30T02:01:00.468Z","repository":{"id":369569420,"uuid":"1290415920","full_name":"itinance/is-cli","owner":"itinance","description":"is — ask your terminal yes/no questions, answered by a read-only Claude agent","archived":false,"fork":false,"pushed_at":"2026-07-06T00:22:22.000Z","size":64,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-06T01:10:12.253Z","etag":null,"topics":["agentic-workflows","claude","cli","rust","terminal"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/itinance.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-07-05T23:37:09.000Z","updated_at":"2026-07-06T00:22:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/itinance/is-cli","commit_stats":null,"previous_names":["itinance/is-cli"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/itinance/is-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itinance%2Fis-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itinance%2Fis-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itinance%2Fis-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itinance%2Fis-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/itinance","download_url":"https://codeload.github.com/itinance/is-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/itinance%2Fis-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":36056276,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-30T02:00:05.956Z","response_time":106,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agentic-workflows","claude","cli","rust","terminal"],"created_at":"2026-07-30T02:00:59.728Z","updated_at":"2026-07-30T02:01:00.447Z","avatar_url":"https://github.com/itinance.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# is\n\nAsk your terminal yes/no questions.\n\n```text\n$ is this branch already merged\n  ⤷ git branch --show-current\n  ⤷ git merge-base HEAD origin/main\nyes — feature/login is in origin/main (a1b2c3d)\n\n$ is this merged \u0026\u0026 git branch -d feature/login\n```\n\nEverything after `is` is a natural-language question. A Claude agent investigates\nyour current environment with **read-only** commands and answers with a verdict.\n\n## Install\n\n```sh\ncargo install is-cli   # installs the `is` binary\n```\n\n**Prerequisite:** a logged-in [Claude Code](https://claude.com/claude-code) install\n(`claude` on your PATH). `is` drives it headlessly and inherits its auth — including\nClaude Pro/Max subscription login. `is` never touches your credentials.\n\n## Exit codes\n\n| Code | Meaning |\n|------|---------|\n| 0 | yes |\n| 1 | no |\n| 2 | can't determine |\n| 3 | operational error (claude missing / not logged in) |\n\nSo `is` composes: `is this merged \u0026\u0026 git branch -d old`.\n\n## Flags\n\n- `-H, --hard` — escalate to your Claude Code default model for one run\n- `-q, --quiet` — no action trace\n- `--json` — `{\"verdict\": \"...\", \"answer\": \"...\"}` on stdout\n- `--model \u003cm\u003e` — one-off model override\n- `--timeout \u003csecs\u003e` — default 60\n\n## Models\n\nDefault is `haiku` (fast, cheap). End any question with `using \u003cmodel\u003e` to switch\n**and persist** it for future runs:\n\n```sh\nis this refactor fully covered by tests using sonnet\n```\n\nStored in `~/.config/is/config.toml` (edit or delete freely).\n\n## A note on subscription auth\n\n`is` deliberately wraps your locally installed `claude` CLI instead of calling the\nClaude API directly. Questions therefore run on whatever auth your Claude Code\nlogin uses — for Pro/Max users, that's your subscription, with no separate API key\nor per-token billing.\n\nThis works because Claude Code's headless mode (`claude -p`) inherits the normal\nlogin path. It is **not** a contractual guarantee: whether subscription quota may\nbe consumed this way is ultimately Anthropic's call, and a future Claude Code\nversion or policy change could restrict headless subscription use. If that\nhappens, `is` would need an API-key mode (or your Claude Code setup would need\none) to keep working. Until then: your login, your quota, your usage.\n\n## The read-only guarantee\n\nThe agent runs with a hard allowlist enforced by Claude Code's permission system:\nread-only `git`/`gh` inspection, file reads and search, and read-only system\nqueries (`ps`, `lsof`, `df`, `sw_vers`, `xcode-select -p`, `brew list`, …). Every\nallowlisted command is scoped away from its mutating sibling — no `git fetch`/`push`,\nno `brew install`, no `defaults write`. It cannot write, edit, or change a setting.\n**`is` never changes your system.**\n\nTwo allowlisted tools reach the network, read-only: `WebFetch` (fetch a URL) and\n`dig` (DNS lookup), so questions like \"is my installed version the latest?\" work.\nThey read *from* the network but cannot write to it — and `is` has no access to\nyour environment variables, so there are no secrets in scope to leak.\n\n## Development\n\n```sh\ncargo test                                   # unit + integration tests\ncargo llvm-cov --open                        # coverage report (requires cargo-llvm-cov)\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitinance%2Fis-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fitinance%2Fis-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fitinance%2Fis-cli/lists"}