{"id":48086678,"url":"https://github.com/dunialabs/kimbap","last_synced_at":"2026-04-09T06:01:23.026Z","repository":{"id":347878460,"uuid":"1190085596","full_name":"dunialabs/kimbap","owner":"dunialabs","description":"Turn anything into a CLI your agent can use. Securely.","archived":false,"fork":false,"pushed_at":"2026-04-03T02:06:16.000Z","size":117213,"stargazers_count":9,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-04T16:15:37.743Z","etag":null,"topics":["agent-skills","ai","cli","runtime","runtime-security"],"latest_commit_sha":null,"homepage":"https://kimbap.sh","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/dunialabs.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":"docs/security.md","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-03-24T00:33:59.000Z","updated_at":"2026-04-03T01:58:34.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/dunialabs/kimbap","commit_stats":null,"previous_names":["dunialabs/kimbap"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/dunialabs/kimbap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunialabs%2Fkimbap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunialabs%2Fkimbap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunialabs%2Fkimbap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunialabs%2Fkimbap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/dunialabs","download_url":"https://codeload.github.com/dunialabs/kimbap/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/dunialabs%2Fkimbap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31588038,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-09T05:33:47.836Z","status":"ssl_error","status_checked_at":"2026-04-09T05:32:26.579Z","response_time":112,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6: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":["agent-skills","ai","cli","runtime","runtime-security"],"created_at":"2026-04-04T15:22:28.383Z","updated_at":"2026-04-09T06:01:23.020Z","avatar_url":"https://github.com/dunialabs.png","language":"Go","readme":"# Kimbap\n\n\u003cimg src=\"docs/logo.svg\" width=\"120\" alt=\"Kimbap\"\u003e\n\n*Do you like kimbap? It's delicious, healthy, and you can make your own.*\n\n\u003e **Turn anything into a CLI your agent can use. Securely.**\n\u003e REST APIs, CLI tools, macOS apps — one YAML, one command.\n\u003e Credentials never enter the agent process.\n\u003e Cuts agent token usage by up to 90%.\n\n![Go](https://img.shields.io/badge/go-%3E%3D1.24-green.svg)\n![License](https://img.shields.io/badge/license-MIT-blue.svg)\n\n[Quick Start](https://kimbap.sh/docs/quick-start) · [Docs](https://kimbap.sh/docs) · [Website](https://kimbap.sh)\n\n---\n\n## Try it now\n\n**1. Install**\n\n```bash\ncurl -fsSL https://kimbap.sh/install.sh | bash\n```\n\nOr with Homebrew:\n\n```bash\nbrew install dunialabs/kimbap/kimbap\n```\n\n**2. Initialize**\n\n```bash\nkimbap init --services select\n```\n\n`select` opens an interactive checklist with a preselected recommended set (and an `all` command). Shortcut aliases are enabled by default; use `--no-shortcuts` to opt out.\n\nPick what you want to install, then run immediately with shortcuts.\n\n**3. Run immediately with shortcut commands**\n\n```bash\ngeosearch --name \"San Francisco\"\n```\n\nThen fetch weather:\n\n```bash\nweather --latitude 37.7749 --longitude -122.4194\n```\n\nNo API key, no localhost setup.\n\n---\n\n## Connect your AI agent\n\n```bash\nkimbap agents setup\n```\n\nDetects installed agents and installs global discovery hints.\nUse `kimbap agents setup --sync --dir \u003cproject\u003e` when you want project-local skill sync.\n\nWorks with Claude Code, OpenCode, Codex, OpenClaw, NanoClaw, and any agent that can run a CLI command.\n\n---\n\n## Turn your API into a CLI\n\nGot a REST API? Turn it into a secure CLI tool in four steps:\n\n1) Start from your API endpoint.\n\n2) Define it in one YAML file:\n\n```yaml\nname: inventory-api\nversion: 1.0.0\naliases: [inventory]\nbase_url: https://api.internal.company.com/v1\nauth:\n  type: bearer\n  credential_ref: inventory_api.token\nactions:\n  list-items:\n    aliases: [items]\n    method: GET\n    path: /warehouses/{warehouse}/items\n    params:\n      warehouse:\n        required: true\n    risk:\n      level: low\n```\n\n3) Install the service definition:\n\n```bash\nkimbap service install inventory-api.yaml\n```\n\nRegister once.\n\n4) Run it as a direct CLI command:\n\n```bash\nitems --warehouse seoul\n```\n\nThen run it like a native CLI command.\n\nThree adapter types: **HTTP** (REST APIs), **Command** (local executable CLIs), **AppleScript** (macOS native apps).\n\nFull schema and examples: **[Service Development Guide](./docs/service-development.md)**\n\nAlready have an OpenAPI 3.x spec? Start there instead:\n\n```bash\nkimbap service generate --openapi ./openapi.yaml --output inventory-api.yaml\nkimbap service generate --openapi http://127.0.0.1:8080/openapi.yaml --name inventory-api --install\n```\n\nRemote OpenAPI URLs must use `https://`. Plain `http://` is only allowed for localhost/loopback during local development.\n\nLocal file specs may use split-file relative `$ref` chains.\n\n---\n\n## Built-in services\n\n### SaaS \u0026 APIs\n\nGitHub · Slack · Stripe · Notion · Linear · HubSpot · Airtable · Pinecone · Todoist · PostHog · Sentry · SendGrid · Resend · Exa · Brave Search · Peta\n\n### Communication\n\nTelegram · WhatsApp · Zoom · Apple Mail · Messages\n\n### Local apps\n\nBlender · ComfyUI · Ollama · Mermaid · Kitty · Spotify\n\n### Developer CLI\n\nGit · Docker · kubectl · AWS CLI · GitHub CLI · Terraform · Helm · Make · psql · pnpm · npm · pip · cargo · go · pytest · vitest · Playwright · TypeScript · ESLint · Prettier · Ruff · mypy · golangci-lint · RuboCop · Next.js CLI · Prisma · Bundler · Rake · RSpec · Graphite · dotnet · env · log · deps · ls · tree · find · grep · cat · diff · wc · curl · wget · jq\n\n### macOS native\n\nFinder · Safari · Contacts · Shortcuts · Apple Notes · Apple Calendar · Apple Reminders · Keynote · Pages · Numbers\n\n### Office\n\nMicrosoft Word · Excel · PowerPoint\n\n### Data\n\nWikipedia · Hacker News · CoinGecko · Open-Meteo (weather, air quality, historical, geocoding) · Financial Datasets · REST Countries · Exchange Rate · Public Holidays · Nominatim · ntfy\n\nIf you need a dedicated MCP control plane (gateway, policy, audit), see [dunialabs/peta-core](https://github.com/dunialabs/peta-core).\n\nDirect call format: `kimbap call \u003cservice\u003e.\u003caction\u003e`\n\nOptional frictionless shortcut (per action):\n\n`kimbap alias set \u003cshortcut\u003e \u003cservice\u003e.\u003caction\u003e` → run `\u003cshortcut\u003e ...`\n\nYou can inspect configured shortcuts with `kimbap service list` (`SHORTCUTS` column).\nTo browse built-in services before installing, use `kimbap service list --available`, `kimbap service search \u003cquery\u003e`, and `kimbap service describe \u003cname\u003e`.\n\n---\n\n## How it works\n\n```\ncall → policy → execute\n```\n\nEvery action goes through the same pipeline. Policy is checked before execution. Credentials are injected at execution time — they never enter the agent process.\n\n| Without kimbap | With kimbap |\n|---|---|\n| Build an MCP server per service | One YAML manifest. No server needed |\n| API keys passed via env vars — leak into logs and prompts | Encrypted vault injects credentials at execution time |\n| Every service has different auth | One manifest format for REST APIs, CLI tools, and macOS apps |\n| Agents run dangerous actions unchecked | Policies and approvals enforced on every action |\n| No record of what the agent did | Audit trail on every action, automatically |\n| API responses flood the agent's context | [Output filtering](./docs/output-filtering.md) trims responses to only what the agent needs (83–94% reduction) |\n\n---\n\n## Link a service\n\n**1. Connect**\n\n```bash\nprintf '%s' \"$GITHUB_TOKEN\" | kimbap link github --stdin\n```\n\n**2. Call**\n\n```bash\nkimbap call github.list-repos --sort updated\n```\n\n`kimbap link` works for both API keys (`--stdin`/`--file`) and OAuth services (Slack, Notion, Zoom, and more).\n\n---\n\n## Advanced\n\n### Integration modes\n\n| Mode | Command | Use case |\n|---|---|---|\n| **Call** (recommended) | `kimbap call \u003cservice\u003e.\u003caction\u003e` | Direct use, scripts, agent integration |\n| Run | `kimbap run -- \u003ccmd\u003e` | Wrap any agent subprocess |\n| Proxy | `kimbap proxy` | Existing HTTP agents, zero code changes |\n| Serve | `kimbap serve` | Connected-mode REST API server |\n\nAll modes share the same policy, credentials, and audit pipeline.\n\n### Execution modes\n\n`kimbap init --mode` controls the security profile of the local runtime:\n\n- `dev` — relaxed security, auto-generated vault key. For local development only.\n- `embedded` — policy-enforced, vault key from `KIMBAP_MASTER_KEY_HEX`. Default for production.\n- `connected` — routes execution through a running `kimbap serve` REST server.\n\nFor most use cases: use `kimbap call` with `--mode embedded`.\n\n### Production setup\n\n```bash\nexport KIMBAP_MASTER_KEY_HEX=\"$(openssl rand -hex 32)\"\nkimbap init --mode embedded --services all\n```\n\n### kimbap-web (embedded web console)\n\n```bash\nkimbap serve --console --port 8080\n```\n\nOpens the operations console at `http://localhost:8080/console`. Shows audit logs, pending approvals, and service health. Disabled by default.\nAction detail includes a shortcut setup snippet (`kimbap alias set \u003cshortcut\u003e \u003cservice\u003e.\u003caction\u003e`) for frictionless command use.\n\n### Documentation\n\n- **[Installation Guide](./docs/installation.md)** — step-by-step setup, agent-readable\n- **[CLI Reference](./docs/cli-reference.md)** — commands, flags, configuration\n- **[Service Development Guide](./docs/service-development.md)** — manifest authoring, adapters\n- **[Output Filtering](./docs/output-filtering.md)** — reduce LLM token usage by 83–94% with declarative response shaping\n- **[Architecture \u0026 Internals](./docs/architecture.md)**\n- **[Security \u0026 Permissions](./docs/security.md)**\n- **[Deployment \u0026 Configuration](./docs/deployment.md)**\n- **[HTTP API Reference](./docs/api/API.md)**\n\n\n---\n\n## Contributing\n\nWrite a YAML manifest, validate it, open a PR. See **[CONTRIBUTING.md](./CONTRIBUTING.md)**.\n\n---\n\nMIT License · [Dunia Labs](https://dunialabs.io)\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunialabs%2Fkimbap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdunialabs%2Fkimbap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdunialabs%2Fkimbap/lists"}