{"id":45724986,"url":"https://github.com/oldwinter/all-cli","last_synced_at":"2026-04-02T14:46:59.567Z","repository":{"id":340356755,"uuid":"1165636971","full_name":"oldwinter/all-cli","owner":"oldwinter","description":null,"archived":false,"fork":false,"pushed_at":"2026-03-15T16:58:48.000Z","size":167,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-03-16T05:07:49.223Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/oldwinter.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":null,"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":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-02-24T11:32:45.000Z","updated_at":"2026-03-15T16:58:23.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/oldwinter/all-cli","commit_stats":null,"previous_names":["oldwinter/all-cli"],"tags_count":14,"template":false,"template_full_name":null,"purl":"pkg:github/oldwinter/all-cli","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldwinter%2Fall-cli","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldwinter%2Fall-cli/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldwinter%2Fall-cli/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldwinter%2Fall-cli/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/oldwinter","download_url":"https://codeload.github.com/oldwinter/all-cli/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/oldwinter%2Fall-cli/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31308410,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-02T12:59:32.332Z","status":"ssl_error","status_checked_at":"2026-04-02T12:54:48.875Z","response_time":89,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":[],"created_at":"2026-02-25T07:57:41.351Z","updated_at":"2026-04-02T14:46:59.561Z","avatar_url":"https://github.com/oldwinter.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# all-cli\n\n`all-cli` is a small CLI tool that inspects whether common CLI tools are installed/configured, and (in v0.1) manages “contexts” for:\n\n- `kubectl` (context + namespace)\n- `docker` (docker contexts)\n- `gh` (active account per host)\n- `glab` (GitLab host context)\n- `argocd` (Argo CD CLI contexts)\n- `kargo` (default project)\n\nIt also detects “current context” for other common tools in `all-cli status` (read-only), including `aws`, `aliyun`, `wrangler`, `vercel`, `railway`, `netlify`, `argocd`, `kargo`, `mise`, and `k9s`.\n\nThe inventory is intentionally broader than the context-switching set. It now also tracks common local CLIs grouped by category, including navigation (`fd`, `rg`, `fzf`, `zoxide`), shell/data helpers (`eza`, `bat`, `yq`), task/runtime tools (`uv`, `just`, `mise`), cloud/deployment CLIs (`aws`, `aliyun`, `wrangler`, `vercel`, `railway`, `netlify`), web automation (`opencli`), Kubernetes helpers (`kubectx`, `kubens`, `kubecolor`, `krew`), AI terminals (`claude`, `codex`, `openclaw`, `opencode`, `gemini`, `ccusage`, `litellm-proxy`), and a few workflow tools such as `linear` and `simplex-cli`.\n\nIt defaults to human-friendly output and supports `--json` for stable machine-readable output (e.g. a future SwiftUI macOS app).\n\n## Install\n\n### Homebrew\n\n```bash\nbrew install oldwinter/tap/all-cli\nall-cli version\n```\n\n### From source (local)\n\n```bash\ngo build ./cmd/all-cli\n./all-cli version\n```\n\n### go install\n\n```bash\ngo install github.com/oldwinter/all-cli/cmd/all-cli@latest\nall-cli version\n```\n\n## Local development\n\n### Local test (without just)\n\n```bash\ngo mod tidy\ngit diff --exit-code -- go.mod go.sum\ngo test ./...\n```\n\n### Local test/build with justfile\n\n```bash\nbrew install just\njust help\njust ci\njust check\njust build\njust status --tools kubectl,docker --group-by none\n```\n\nRecommended day-to-day flow:\n\n```bash\n# run CI-equivalent checks\njust ci\n\n# run stricter local checks (ci + race + format check)\njust check\n\n# build and run quick smoke checks\njust smoke\n```\n\nHigh-frequency recipes:\n\n- `just ci`: same checks as GitHub CI (`verify-tidy + vet + test`)\n- `just check`: stronger local gate (`ci + test-race + fmt-check`)\n- `just fmt` / `just fmt-check`: format code or enforce formatting\n- `just test-cover`: run coverage and print per-package function coverage\n- `just coverage-html`: write `coverage.html` for detailed coverage browsing\n- `just build` / `just build-release`: normal build or release-style build\n- `just run ...`: run from source (for example `just run status --json`)\n- `just status ...` / `just status-json ...`: run status from the local built binary\n- `just smoke`: quick binary sanity check (`version` + `status`)\n- `just release-check` / `just release-snapshot`: validate or dry-run GoReleaser\n- `just release`: publish release artifacts (with confirm prompt)\n- `just tag vX.Y.Z`: create and push annotated tag (with confirm prompt)\n\nNote about Go toolchain mismatch:\n\n- `justfile` now runs all Go commands through `env -u GOROOT -u GOTOOLDIR go`, which avoids common stale shell variable mismatches.\n- If you still need to debug your shell environment, run `just go-env`.\n\n## Usage\n\n### Global overview\n\n`all-cli status` defaults to grouping by `category` and sorting tools by `tool` (A-Z).\n\n```bash\nall-cli status\nall-cli status --json\nall-cli status --tools kubectl,docker\nall-cli status --group-by none\nall-cli status --sort tool-desc\nall-cli status --sort category-desc\nall-cli status --timeout 10s\n```\n\n### AI-friendly JSON additions\n\nMachine-readable shape for `status --json` is also summarized as [JSON Schema](schemas/status-report-v0.1.json) (`schema_version` `v0.1`).\n\n`all-cli status --json` now includes additive English metadata for machine callers:\n\n- Top-level `legend`: explains shared fields such as `installed`, `configured_state`, `capabilities`, `warnings`, `errors`, and the meaning of metadata fields.\n- Per-tool `metadata`: explains `purpose`, `configured_when`, known keys inside `current`, suggested `agent_actions`, and short interpretation notes.\n\nExample shape:\n\n```json\n{\n  \"schema_version\": \"v0.1\",\n  \"legend\": {\n    \"configured_state\": {\n      \"yes\": \"all-cli found enough local state to treat the tool as configured\"\n    },\n    \"metadata_fields\": {\n      \"purpose\": \"Short English description of what the tool is for\"\n    }\n  },\n  \"tools\": [\n    {\n      \"id\": \"kubectl\",\n      \"current\": {\n        \"context\": \"example-cluster\"\n      },\n      \"metadata\": {\n        \"purpose\": \"Kubernetes CLI used to inspect and operate clusters through kubeconfig contexts.\",\n        \"configured_when\": \"At least one kubeconfig context is available and readable.\",\n        \"current_field_descriptions\": {\n          \"context\": \"The active kubeconfig context name.\"\n        },\n        \"agent_actions\": [\n          \"inspect_status\",\n          \"show_current\",\n          \"list_contexts\",\n          \"switch_context\"\n        ]\n      }\n    }\n  ]\n}\n```\n\n### kubectl\n\n```bash\nall-cli kubectl status\nall-cli kubectl current\nall-cli kubectl list\nall-cli kubectl use \u003ccontext\u003e --namespace \u003cns\u003e\nall-cli kubectl namespace \u003cns\u003e\n```\n\n### docker\n\n```bash\nall-cli docker status\nall-cli docker current\nall-cli docker list\nall-cli docker use \u003ccontext\u003e\n```\n\n### gh\n\n```bash\nall-cli gh status\nall-cli gh list --json\nall-cli gh use --hostname github.com --user \u003clogin\u003e\n```\n\n### glab\n\n```bash\nall-cli glab status\nall-cli glab list\nall-cli glab use \u003chost\u003e\n```\n\n### aws\n\n```bash\nall-cli aws status\nall-cli aws current\nall-cli aws list\n```\n\n### aliyun\n\n```bash\nall-cli aliyun status\nall-cli aliyun current\nall-cli aliyun list\n```\n\n### wrangler\n\n```bash\nall-cli wrangler status\nall-cli wrangler current\n```\n\n### mise\n\n```bash\nall-cli mise status\nall-cli mise current\n```\n\n### k9s\n\n```bash\nall-cli k9s status\nall-cli k9s current\n```\n\n### argocd\n\n```bash\nall-cli argocd status\nall-cli argocd current\nall-cli argocd list\nall-cli argocd use \u003ccontext\u003e\n```\n\n### kargo\n\n```bash\nall-cli kargo status\nall-cli kargo current\nall-cli kargo use \u003cproject\u003e\nall-cli kargo use --unset\n```\n\n## Security notes\n\n- `all-cli` does **not** print or read plaintext tokens/secrets.\n- It avoids `--show-token` flags and only uses official CLI outputs to determine “configured” state.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foldwinter%2Fall-cli","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Foldwinter%2Fall-cli","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Foldwinter%2Fall-cli/lists"}