{"id":50971919,"url":"https://github.com/stlimtat/bunshin-go","last_synced_at":"2026-06-19T03:01:32.676Z","repository":{"id":362231006,"uuid":"1257962570","full_name":"stlimtat/bunshin-go","owner":"stlimtat","description":"Bunshin is a go port of LangChain / LangGraph / LangSmith — production-grade LLM pipeline primitives with native concurrency, type safety, and single-binary deploys.","archived":false,"fork":false,"pushed_at":"2026-06-18T11:59:25.000Z","size":1695,"stargazers_count":0,"open_issues_count":4,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-18T13:27:56.004Z","etag":null,"topics":["concurrency","go","langchain","llm","llm-agent-framework","llm-agentic-workflow"],"latest_commit_sha":null,"homepage":"https://bunshin-go.github.io","language":"Go","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/stlimtat.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-06-03T06:46:24.000Z","updated_at":"2026-06-18T03:46:25.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/stlimtat/bunshin-go","commit_stats":null,"previous_names":["stlimtat/bunshin-go"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stlimtat/bunshin-go","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlimtat%2Fbunshin-go","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlimtat%2Fbunshin-go/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlimtat%2Fbunshin-go/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlimtat%2Fbunshin-go/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stlimtat","download_url":"https://codeload.github.com/stlimtat/bunshin-go/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stlimtat%2Fbunshin-go/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34515405,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-19T02:00:06.005Z","response_time":61,"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":["concurrency","go","langchain","llm","llm-agent-framework","llm-agentic-workflow"],"created_at":"2026-06-19T03:01:31.669Z","updated_at":"2026-06-19T03:01:32.665Z","avatar_url":"https://github.com/stlimtat.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# bunshin-go\n\n[![CI](https://github.com/stlimtat/bunshin-go/actions/workflows/ci.yml/badge.svg)](https://github.com/stlimtat/bunshin-go/actions/workflows/ci.yml)\n[![Go Reference](https://pkg.go.dev/badge/github.com/stlimtat/bunshin-go.svg)](https://pkg.go.dev/github.com/stlimtat/bunshin-go)\n[![Go Version](https://img.shields.io/badge/go-1.26+-blue.svg)](https://go.dev/doc/install)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n![A gopher with a lattice that synthesizes the concepts of \"chaining\" LangChain and \"cloning\" Bunshin using modern, technical shapes and subtle, safe references to ninja tools](/docs/static/img/bunshin-logo-01.png)\n\nA Go port of LangChain / LangGraph / LangSmith — production-grade LLM pipeline primitives with native concurrency, type safety, and single-binary deploys.\n\n| Problem | Python LangChain | bunshin-go |\n|---------|-----------------|------------|\n| Concurrency | GIL limits parallelism | goroutines, zero overhead |\n| Type safety | Runtime errors, brittle | Generics, compile-time checks |\n| Deploy | Virtual envs, deps | Single static binary |\n| Latency | 50–200 ms startup | Sub-1 ms startup |\n| Context windows | 2M tokens = 2 GB RAM | Reference/cursor, O(1) RAM |\n\n**Docs:** [architecture](docs/content/architecture/index.md) · [quickstart](docs/content/quickstart/index.md) · [concepts](docs/content/concepts/index.md) · [how-tos](docs/content/howto/)\n\n---\n\n## Install\n\n```bash\ngo get github.com/stlimtat/bunshin-go\n```\n\n```go\nprovider := llm.NewFakeProvider(\"openai\", \"Hello from bunshin-go!\")\nresult, _ := provider.Complete(ctx, \u0026llm.Request{\n    Messages: []llm.Message{llm.NewTextMessage(llm.RoleUser, \"What is Go?\")},\n})\nfmt.Println(result.Content)\n```\n\n---\n\n## CLI\n\n```bash\ngo build -o bunshin ./cmd/bunshin\n```\n\n| Subcommand | What it does |\n|------------|--------------|\n| `bunshin llm` | Single provider LLM call |\n| `bunshin chain` | Two-step entity extraction chain |\n| `bunshin agent` | Agent loop with arithmetic tools |\n| `bunshin mcp-sandbox` | MCP tool discovery + sandboxed code execution |\n| `bunshin serve` | Start the HTTP workflow server |\n| `bunshin health` | Self-check (used by Docker healthcheck) |\n| `bunshin version` | Print version |\n| `bunshin docs` | Generate LLM-ready CLI markdown docs |\n\n```bash\nbunshin llm --message \"What is Go?\"\nbunshin agent --question \"What is 6*7?\"\nbunshin serve --addr :9090\n```\n\n### Environment variables\n\n| Variable | Default | Description |\n|----------|---------|-------------|\n| `BUNSHIN_PROVIDER` | `fake` | `fake\\|openai\\|anthropic\\|google\\|ollama` |\n| `BUNSHIN_MODEL` | _(provider default)_ | Model ID |\n| `BUNSHIN_API_KEY` | | API key |\n| `BUNSHIN_LOG_LEVEL` | `info` | `debug\\|info\\|warn\\|error` |\n| `BUNSHIN_ADDR` | `:8080` | HTTP listen address |\n\n```bash\nBUNSHIN_PROVIDER=openai BUNSHIN_API_KEY=sk-... bunshin llm --message \"Hello\"\n```\n\n---\n\n## Docker\n\n```bash\ndocker compose -f deployments/docker-compose.yml up\n\ncurl -X POST http://localhost:8080/workflows/echo \\\n  -H \"Content-Type: application/json\" \\\n  -d '{\"input\": {\"message\": \"hello\"}}'\n\ncurl -N \"http://localhost:8080/workflows/echo/stream?input=%7B%22message%22%3A%22hello%22%7D\"\n```\n\n---\n\n## Testing\n\n```bash\ngo test -race -count=1 ./...\ngo test ./pkg/testing/fault/... -v   # chaos / fault injection\ngo test ./pkg/eval/... -v            # eval harness\n```\n\n---\n\n## Project layout\n\n| Directory | Purpose |\n|-----------|---------|\n| `pkg/` | Public library packages |\n| `internal/` | Private shared utilities |\n| `cmd/bunshin/` | Unified CLI (cobra + viper) |\n| `api/` | OpenAPI 3.1 specification |\n| `deployments/` | Dockerfile, docker-compose |\n| `docs/` | Documentation site |\n\n---\n\n## Roadmap\n\n- [ ] OpenAI + Anthropic provider adapters\n- [ ] Redis and S3 MessageStore backends\n- [ ] gRPC transport\n- [ ] LangSmith telemetry backend\n- [ ] E2B and Docker sandbox backends\n- [ ] Real MCP client (stdio + HTTP/SSE transport)\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstlimtat%2Fbunshin-go","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstlimtat%2Fbunshin-go","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstlimtat%2Fbunshin-go/lists"}