{"_id":"@chenglou/hummingbirds","_rev":"3-5579675f4dc6c641c7eb84aafd71500b","name":"@chenglou/hummingbirds","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.0":{"name":"@chenglou/hummingbirds","version":"0.1.0","author":{"name":"Cheng Lou"},"license":"MIT","_id":"@chenglou/hummingbirds@0.1.0","maintainers":[{"name":"chenglou","email":"chenglou92@gmail.com"}],"homepage":"https://github.com/chenglou/hummingbirds#readme","bugs":{"url":"https://github.com/chenglou/hummingbirds/issues"},"bin":{"birds":"src/cli.ts"},"dist":{"shasum":"1dc804f7380de4d977a1f9f8143ded083bea5d00","tarball":"https://registry.npmjs.org/@chenglou/hummingbirds/-/hummingbirds-0.1.0.tgz","fileCount":10,"integrity":"sha512-oUbcBHonByPNU8B3bakWdCdyKW1eeQL7z1sE50SfW9Jn0swmjDKINnA7qymV+U+TLFbHkaJ9IlZOMPHlqHfNbQ==","signatures":[{"sig":"MEUCIAJ3BasGH4M0DyxjT3cKvODFkTEMiAH3lT/lAC1M5PkeAiEAjDj/8iqlqqkfm6EtSI/hzKuxre/cPcQU0ooBtiL6H8E=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":59544},"type":"module","_from":"file:/Users/chenglou/github/hummingbirds/logs/release-bundled-only-20260902.G1h4Nc/chenglou-hummingbirds-0.1.0.tgz","engines":{"bun":">=1.4.0"},"gitHead":"f434d78de24814c30e8010e14df351f90d28a795","scripts":{"chat":"bun run src/cli.ts chat","knip":"knip","lint":"oxlint --type-aware src tests experiments","test":"bun test ./tests","birds":"bun run src/cli.ts","check":"bun run typecheck && bun run lint && bun run test","start":"bun run src/cli.ts start","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chenglou","email":"chenglou92@gmail.com"},"_resolved":"/Users/chenglou/github/hummingbirds/logs/release-bundled-only-20260902.G1h4Nc/chenglou-hummingbirds-0.1.0.tgz","_integrity":"sha512-oUbcBHonByPNU8B3bakWdCdyKW1eeQL7z1sE50SfW9Jn0swmjDKINnA7qymV+U+TLFbHkaJ9IlZOMPHlqHfNbQ==","repository":{"url":"git+https://github.com/chenglou/hummingbirds.git","type":"git"},"_npmVersion":"10.9.2","description":"A decentralized flock of agents that discover peers, exchange knowledge, and create new birds.","directories":{},"_nodeVersion":"23.10.0","dependencies":{"@openai/codex":"0.149.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"latest","oxlint":"latest","@types/bun":"latest","typescript":"5.9.3","oxlint-tsgolint":"latest","@typescript/native":"npm:typescript@7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/hummingbirds_0.1.0_1788332682669_0.19866802816735074","host":"s3://npm-registry-packages-npm-production"}},"0.1.1":{"name":"@chenglou/hummingbirds","version":"0.1.1","author":{"name":"Cheng Lou"},"license":"MIT","_id":"@chenglou/hummingbirds@0.1.1","maintainers":[{"name":"chenglou","email":"chenglou92@gmail.com"}],"homepage":"https://github.com/chenglou/hummingbirds#readme","bugs":{"url":"https://github.com/chenglou/hummingbirds/issues"},"bin":{"birds":"src/cli.ts"},"dist":{"shasum":"f747330b69cfc957ef5446b3824994783a7f7bd4","tarball":"https://registry.npmjs.org/@chenglou/hummingbirds/-/hummingbirds-0.1.1.tgz","fileCount":10,"integrity":"sha512-T61DnSjtOljc4dyM/yzc6MPcOAebrt0eJd31rAXsoaRqQk4fDyumh7kfGz48FwVzs7BQWrWaKM4BsSOuiwoIjg==","signatures":[{"sig":"MEUCIQDMAFsWqCnpF7njPTYAN/G/72l2P1chH6i0LGM6b7d+ywIgT7aOyIcuq+iyWVGnKz1b6faVASO/gYzKJbzBiTboz6M=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":66821},"type":"module","_from":"file:/Users/chenglou/github/hummingbirds/logs/release-0.1.1-20260902.Ynk0r2/chenglou-hummingbirds-0.1.1.tgz","engines":{"bun":">=1.4.0"},"scripts":{"chat":"bun run src/cli.ts chat","knip":"knip","lint":"oxlint --type-aware src tests experiments","test":"bun test ./tests","birds":"bun run src/cli.ts","check":"bun run typecheck && bun run lint && bun run test","start":"bun run src/cli.ts start","typecheck":"tsc --noEmit"},"_npmUser":{"name":"chenglou","email":"chenglou92@gmail.com"},"_resolved":"/Users/chenglou/github/hummingbirds/logs/release-0.1.1-20260902.Ynk0r2/chenglou-hummingbirds-0.1.1.tgz","_integrity":"sha512-T61DnSjtOljc4dyM/yzc6MPcOAebrt0eJd31rAXsoaRqQk4fDyumh7kfGz48FwVzs7BQWrWaKM4BsSOuiwoIjg==","repository":{"url":"git+https://github.com/chenglou/hummingbirds.git","type":"git"},"_npmVersion":"10.9.2","description":"A decentralized flock of agents that discover peers, exchange knowledge, and create new birds.","directories":{},"_nodeVersion":"23.10.0","dependencies":{"@openai/codex":"0.149.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"latest","oxlint":"latest","@types/bun":"latest","typescript":"5.9.3","oxlint-tsgolint":"latest","@typescript/native":"npm:typescript@7.0.2"},"_npmOperationalInternal":{"tmp":"tmp/hummingbirds_0.1.1_1788353762005_0.8965996012849062","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"_id":"@chenglou/hummingbirds@0.1.2","bin":{"birds":"src/cli.ts"},"bugs":{"url":"https://github.com/chenglou/hummingbirds/issues"},"dist":{"shasum":"335b59f56f3fd08553f52cab9fc7cf8305d87b62","tarball":"https://registry.npmjs.org/@chenglou/hummingbirds/-/hummingbirds-0.1.2.tgz","fileCount":10,"integrity":"sha512-Zgzeggh0z8j1Tab3MbPzPGIY1zr6p8ZGiu21lMvuewOfT9qYMq5TUjfZ7Xq2jHT3EoTuoH11wf3F6nc/UXUQGw==","signatures":[{"sig":"MEUCIQDbtTiwCoKfb0cHjkjOxUIlB5jg1KKr2uGh3zSYF//+fAIgPTEM9DV+uLleI012UhVyCpr+ZnCDo3A/v3zKua2ag94=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"},{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIG8K+U3KHdMPMEJnN6yrUVr1vrggA5P+0QSSVm8dh4IsAiEAuHJtDfWuPri3DInZftbIpCnFxgKjqx/6g4Yxng/wvuY="}],"unpackedSize":67054},"name":"@chenglou/hummingbirds","type":"module","_from":"file:/private/tmp/hummingbirds-release-0.1.2.a5rlnA/chenglou-hummingbirds-0.1.2.tgz","author":{"name":"Cheng Lou"},"engines":{"bun":">=1.4.0"},"license":"MIT","scripts":{"chat":"bun run src/cli.ts chat","knip":"knip","lint":"oxlint --type-aware src tests experiments","test":"bun test ./tests","birds":"bun run src/cli.ts","check":"bun run typecheck && bun run lint && bun run test","start":"bun run src/cli.ts start","typecheck":"tsc --noEmit"},"version":"0.1.2","_npmUser":{"name":"chenglou","email":"chenglou92@gmail.com"},"homepage":"https://github.com/chenglou/hummingbirds#readme","_resolved":"/private/tmp/hummingbirds-release-0.1.2.a5rlnA/chenglou-hummingbirds-0.1.2.tgz","_integrity":"sha512-Zgzeggh0z8j1Tab3MbPzPGIY1zr6p8ZGiu21lMvuewOfT9qYMq5TUjfZ7Xq2jHT3EoTuoH11wf3F6nc/UXUQGw==","repository":{"url":"git+https://github.com/chenglou/hummingbirds.git","type":"git"},"_npmVersion":"10.9.2","description":"A decentralized flock of agents that discover peers, exchange knowledge, and create new birds.","directories":{},"maintainers":[{"name":"chenglou","email":"chenglou92@gmail.com"}],"_nodeVersion":"23.10.0","dependencies":{"@openai/codex":"0.149.1"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"knip":"latest","oxlint":"latest","@types/bun":"latest","typescript":"5.9.3","oxlint-tsgolint":"latest","@typescript/native":"npm:typescript@7.0.2"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/hummingbirds_0.1.2_1790669769431_0.781280535334606"}}},"time":{"created":"2026-09-02T07:04:42.452Z","modified":"2026-09-29T08:16:09.683Z","0.1.0":"2026-09-02T07:04:42.796Z","0.1.1":"2026-09-02T12:56:02.149Z","0.1.2":"2026-09-29T08:16:09.518Z"},"bugs":{"url":"https://github.com/chenglou/hummingbirds/issues"},"author":{"name":"Cheng Lou"},"license":"MIT","homepage":"https://github.com/chenglou/hummingbirds#readme","repository":{"url":"git+https://github.com/chenglou/hummingbirds.git","type":"git"},"description":"A decentralized flock of agents that discover peers, exchange knowledge, and create new birds.","maintainers":[{"name":"chenglou","email":"chenglou92@gmail.com"}],"readme":"# Hummingbirds\n\nWire all your codexes together so that they talk to each other, on your computer and across the internet! Discover new flocks of Codex birds, shed old ones, and breed new ones from time to time.\nOver time, these birds would scale mostly through replicating and using their in-context memory, and new info would smartly route through the relevant birds. They'll also naturally develop specialties based on what they've seen. `src/prompt_template.md` and a tiny server is all there is. The rest of these behaviors have been proven to emerge naturally through scale and networking.\n\n## Install and start\n\n```sh\nbun install -g @chenglou/hummingbirds\nbirds login\nbirds new myBird # give it the name myBird. You can name it anything\nbirds start myBird # starts a bird in foreground. Use --detach to background it\n```\n\nCodex comes bundled; `birds login` just forwards to `codex login`. So for remote login, use `birds login --device-auth` and finish in your browser.\n\n- `birds chat myBird` to talk to a bird you started locally.\n- `birds stop myBird` stops `myBird` (but doesn't delete it). Restart with the same `birds start myBird`.\n- `birds list` shows all local birds\n\nThe birds also know these commands and can autonomously create new offspring & teach them through messaging.\n\n_Per OpenAI docs, on Linux, Codex needs you to install `bubblewrap`; Ubuntu 24.04 may also require the [documented AppArmor setup](https://learn.chatgpt.com/docs/sandboxing#prerequisites)._\n\n## Networking\n\nExperimental: use only with trusted peers; publicly reachable birds accept unauthenticated messages and expose their live event stream.\n\nYour birds can talk to other birds on the internet if the receivers were started with an IP and port: `birds start myBird --address SERVER_IP:3001`.\nFirst `birds start myBird` saves the address and listening interface; restarts reuse them unless overridden. Omit the port (e.g. `--address SERVER_IP`) to auto pick a free one.\n\nYou can talk to them yourself through `birds chat <address-here>`, like `birds chat SERVER_IP:3001`. Send it messages and get replies async, later. In that sense, you're a bird too =)\n\nIf you're hosting birds locally (usually behind a router), use `--address PUBLIC_IP:PORT --bind LOCAL_IP` and forward that port to your computer so birds outside your local network can reach yours through `PUBLIC_IP:PORT`.\n\n## Credits\n\nThanks to Alan Kay for the original idea of message passing.\n","readmeFilename":"README.md"}