← Discover MCPs and Agents
K
AgentAI & MLGitHub

KiroCrew

A persistent workspace for development work that self-improves and continues beyond one session.

Links

README

From the repo.

Kiro Crew. Keep work moving. Runs on your hardware, remembers across sessions, keeps working unattended.

Kiro Crew

A persistent workspace for development work that self-improves and continues beyond one session.

Kiro Crew on Trendshift

Kiro Crew is an open source development workspace that runs locally or remotely on your hardware. It is persistent, self-learning, and self-evolving. Work with it from the desktop app, web dashboard, and CLI, or continue the same work through connection tools like Slack and Discord. Your multi-step tasks can run unattended, recurring jobs run on your schedule, and heartbeats monitor systems until something needs attention. Kiro Crew Apps tailor that experience to a specific job, combining a purpose-built interface with agents, skills, schedules, integrations, and backend services.

Download Kiro Crew for macOS, Linux, or Windows Read the documentation Install guide for macOS, Linux, and Windows Contributing guide Security policy Apache 2.0 license

Quick start · Build from source · Why Kiro Crew · Capabilities · How it works · Security · Install · Telemetry · Docs

Quick start

You choose how to run Kiro Crew: the desktop app with automatic updates, a one-line install on your machine or a remote host, the Docker image for always-on servers, or a build from source. The default agent runs on kiro-cli, which you install and sign in to separately. First launch checks that prerequisite and links to the official setup guide when it is missing.

App downloads

Use the Stable desktop package for macOS or Windows x64. On Linux, start with the one-line install below. The install guide owns Insider and Nightly links, Linux .deb / .rpm / AppImage packages, architecture support, platform requirements, and sandbox setup.

Release channels

Stable is the default; Insider follows release candidates, and Nightly follows main. The release runbook owns the current triggers, version shapes, promotion behavior, cadence, and update-lane semantics.

One-line install

Install the signed Stable wheel without cloning the repository or building the frontend:

curl -fsSL https://download.crew.kiro.dev/cli.sh | sh

Then open http://localhost:5476. Pass --version to pin an exact release — the minimum pinnable release is 0.1.2, because 0.1.0 and 0.1.1 predate manifest signing and have no signed manifest to resolve:

curl -fsSL https://download.crew.kiro.dev/cli.sh | sh -s -- --version 0.6.0

The install guide owns channel selection, managed versus system Python, mirrors, first-run setup, upgrades, and recovery.

Docker

For always-on servers, the Gateway ships as a public multi-arch image on GHCR:

docker run -d --name kirocrew \
  -p 127.0.0.1:5476:5476 \
  -v kirocrew-home:/home/kirocrew \
  ghcr.io/kirodotdev/kirocrew:stable

See the Docker guide for first-run login, channel tags, and the container security model.

Build from source

macOS and Linux require Python 3.12+, Node.js 22+ (24 LTS recommended), and npm. The default ACP backend also requires kiro-cli: install it on the Gateway host and run kiro-cli login before using that backend. Other verified ACP harnesses have their own prerequisites in the install guide. Windows is supported through a native source install; follow the Windows guide instead of the shell steps below.

# 1. Clone and build Kiro Crew
git clone https://github.com/kirodotdev/KiroCrew.git
cd KiroCrew
make build
source .venv/bin/activate

# 2. Configure, verify, and start
kirocrew setup
kirocrew doctor
kirocrew gateway

Why Kiro Crew

Most agent sessions end when the chat closes. Kiro Crew runs continuously on hardware you control and keeps working between conversations.

Persistent. Sessions, memory, schedules, and task checkpoints survive Gateway restarts, and scheduled or reactive work continues without someone at the terminal.

Self-learning. Corrections and task failures become durable lessons. Preferences and project context carry into new sessions.

Self-evolving. Repeated patterns become reusable skills. Memory, lessons, and skills stay visible and editable, so each Kiro Crew grows more tailored to the person and work around it.

Runs where you choose. Your Mac, a local container, or a remote machine you control.

One Gateway, many surfaces. Work directly in the desktop app or web dashboard, or continue the same work from the CLI and messaging surfaces like Slack and Discord.

What Kiro Crew does

CapabilityWhat it gives you
Persistent sessionsRun concurrent, isolated conversations, resume them after Gateway restarts, search prior sessions, and carry recent context into new work.
Self-learningTurn corrections and task failures into durable lessons that change later behavior. Lessons can apply globally or carry a repo_scope that limits them to one repository; Crew Members keep private lessons in their own memory store.
Self-evolving skillsSynthesize reusable skills from repeated patterns, then inspect, refine, or remove them as your work changes.
Long-running tasksGive Kiro Crew a task spec and walk away. It plans steps, executes them, validates results, retries failures, and resumes from checkpoints. "Implement this migration plan and stop if the tests fail" runs as a checkpointed task with validation at each step.
Unattended autonomyRun scheduled agent work or deterministic scripts and commands without a model call. Monitor work until it is done, or react to messaging events and authenticated webhooks without someone at the terminal. "Every weekday at 9, summarize the open work I should review" becomes a timezone-aware recurring job delivered to the surface you choose.
DelegationSpawn isolated subagents for parallel work and bring their results back into the parent conversation. "Research these three options in parallel and recommend one" fans out to isolated subagents and synthesizes the tradeoffs.
Work where you chooseWork directly in the desktop app or web dashboard, or continue through the CLI and any connected messaging surface without moving the agent runtime or its state.
Installable AppsAdd focused interfaces and domain workflows through dashboard pages, scoped Gateway APIs, events, and lifecycle hooks.
Extensible toolsAdd MCP servers, markdown skills, and hooks without changing the core runtime.
Visible executionWatch tool calls, subagent progress, context usage, approvals, schedules, memory, and logs from the dashboard.
Defense in depthCombine tool approvals, OS sandboxing, sensitive-path checks, credential redaction, deny rules, audit events, and governance profiles.

You can also paste a screenshot and ask what is causing an error. Kiro Crew sends the image to the active Kiro model and keeps the diagnosis in the conversation history.

The complete inventory is in Features and What's New.

How it works

flowchart TD
    S["Desktop app · Web dashboard · CLI · Messaging channels"]
    G["Gateway<br/>access · sessions · memory · schedules · approvals · apps"]
    A["Agent sessions<br/>ACP runtime · selected harness · MCP tools · models"]
    S --> G --> A

The Gateway separates where the agent runs from where you work. Each conversation or background task is a logical agent session driven through the selected agent.acp_backend; depending on that harness and workload, the session uses a dedicated process or a handle on a shared ACP runtime. State, policy, approvals, schedules, memory, and apps remain on the Gateway host.

See the architecture overview for component boundaries, sessions for lifecycle and isolation, and MCP architecture for tool exposure.

Security and control

Kiro Crew enforces approvals, OS isolation where available, sensitive-path and credential guards, denied-operation rules, audit records, and an optional policy/profile ceiling at the runtime boundary. The dashboard binds to loopback by default; any remote exposure requires authenticated configuration.

Read the canonical security model and security architecture before changing or widening those controls. Protect credentials, review high-impact actions, and use SECURITY.md for private vulnerability reporting.

Install, configure, and operate

The install guide owns every install path, first-run step, optional dependency, upgrade, uninstall, and recovery procedure. User data lives under ~/.kiro/crew by default and moves with KIROCREW_HOME; configuration keys and precedence are canonical in the config spec.

For a new source or wheel install:

kirocrew setup
kirocrew doctor
kirocrew gateway

Run the Gateway as a boot-persistent service when needed:

kirocrew service install
kirocrew service status
kirocrew logs

Service ports, systemd/launchd behavior, containers, and remote-host access are documented in the install guide, Docker guide, and remote host guide.

Use kirocrew config get, kirocrew config set <key> <value>, and kirocrew config edit for the main configuration. Set a process port with KIROCREW_PORT or kirocrew gateway --port <n>. Start troubleshooting with kirocrew doctor, then inspect kirocrew logs (or kirocrew logs -f). See the troubleshooting guide for log sources, levels, diagnostics bundles, and recovery steps.

Anonymous usage telemetry

Kiro Crew sends one anonymous heartbeat per day so maintainers can see how many copies are actively running and which releases, Python minors, and install paths still need support. After a successful install or update from the official app catalog, it also sends one anonymous per-app receipt. Both signals are enabled by default, but first egress waits until the first-run privacy disclosure has been shown; they use the same controls below.

To turn it off, flip Settings → Privacy → Send anonymous usage heartbeat in the dashboard (the same switch appears on the last step of first-run onboarding). Or from a terminal:

kirocrew telemetry disable        # persists to config.json
export KIROCREW_TELEMETRY_DISABLED=1   # or per-shell / per-container
kirocrew telemetry status         # print exactly what would be sent

The toggle and kirocrew telemetry disable write the same setting, so either one sticks across restarts and upgrades. KIROCREW_TELEMETRY_DISABLED overrides both — when it is set, the dashboard toggle is disabled and says so.

Exactly these five fields are sent, at most once per day, and nothing else:

FieldExampleWhy
Random instance id9c75560d… (UUID4)Lets us count how many copies ran on a given day. Generated once on first run and derived from nothing — not your hostname, username, MAC, IP, or any account. It identifies an installed copy, never a person.
App version0.1.2Which releases are still in use. Release number only — build stamps like -nightly.20260731t065756 are stripped before sending, because a per-build timestamp is near-unique and would help identify a specific machine.
Python minor version3.12When the minimum can move up
Install pathdmgWhich distribution format people actually use
First-send flag1 / 0First successfully reported install vs returning

Official-app install receipts are separate and event-based. After a successful official-catalog install or update, Kiro Crew sends one GET to /b/1/install/<app-slug>?t=<token>&k=<fresh|update>&v=<release> on the same telemetry host. The slug is the public catalog identifier. t is the first 32 hex characters of HMAC-SHA256 keyed by an independent local receipt secret over app-install:<slug>; that secret never leaves the machine, so tokens for different apps cannot be linked to each other or to the heartbeat install id. k separates fresh installs from updates, and v is the same release-only Kiro Crew version clamp used by the heartbeat.

Receipts are emitted only for bundled or edition-provided official catalog entries. Apps from user-configured registries, local-directory installs, and self-registered apps emit nothing, so private app names never leave the machine. If the receipt-only secret cannot be persisted, the receipt is skipped.

This list used to be nine fields. Release channel, OS, CPU architecture and governance posture were removed — each was coarse on its own, but the instance id is stable, so those attributes all describe the same copy and together they narrowed the group any one install blends into far more than any single field suggests.

We report this as Daily Active Crews rather than "users": Kiro Crew has no account system of its own, and the Kiro sign-in that kiro-cli uses for model access is never read or sent. There is no way to resolve a copy to a person, so one person running Kiro Crew on three machines counts as three Crews.

Never sent: your prompts, model responses, file contents, file paths, repo or branch names, credentials, environment variables, hostname, username, or IP address. The receiving CDN is configured not to log client IP addresses — the log delivery does not include that field, so no IP is stored at all.

Automatically off in CI, and whenever KIROCREW_HOME points somewhere other than ~/.kiro/crew (dev instances and pods are never counted).

Enterprise administrators can pin it off entirely. A capabilities.telemetry entry in the security policy blocks both outbound signals regardless of the local setting, and the dashboard toggle then says so instead of offering a change that would not take effect:

{"version": 1, "boot": {"fail_closed": true},
 "capabilities": {"telemetry": {"enabled": false}}}

See docs/system-specs/modules/governance.md.

This is separate from telemetry.enabled, which controls local-only performance metrics that never leave your machine. See docs/system-specs/modules/metrics.md.

Docs and contributing

TopicStart here
Install and packagingInstall and build, Windows, Docker, Desktop, Remote host, Release process
Product capabilitiesFeatures, Skills, All user docs
All documentationdocs/ for contributor and architecture docs
ChannelsSlack, Discord, Telegram, Teams, Webex, WeCom, WeChat (Weixin), WhatsApp, Feishu (Lark), iMessage
ArchitectureSystem architecture, Memory, MCP, App Kit
Trust and dependenciesSecurity, Security policy
Project workContributing, Tenets, Governance, Maintainers, AI assistant rules, Changelog

Contributions are welcome. Follow CONTRIBUTING.md for setup, change-scoped validation, commit format, and the pull-request workflow. Use GitHub Issues for bugs and feature requests; report vulnerabilities privately through SECURITY.md.

Contributors

Kiro Crew was made possible by its internal community, the people who supported the project and shipped its code, together with everyone who has since opened a pull request in the open. This is that founding group; as Kiro Crew grows in the open, we look forward to many more contributors joining them. Thank you to everyone who helped make this tool possible:

MJ Zhang G2 Ahei Abe Diaz (@abe238) Abhishek Dhameja Abhishek Mitra Abhishek Shasthry B M abirkel acdoussan acluft Adam Duncan AddisonTustin Adi Arora Aaron Longwell Nirav Adunuthula Aiden Gaines Alexander Jones Akshit Desai Albin Shrestha Alec Douglas Alejandro Aleksander W. Oleszkiewicz (auticon) Johanes Glenn Alexander-Yuan Alex Shen Amad Salmon Amer Grgic Amir Naghibi Amulya Kumar Sahoo Anant Kaushik AndrewSDHarsh Andrew Golightly andreyaurelien andriifonaskov angeloyu Aniket Shukla ANIRUDDHA ADAK anjn98 Anmol Saxena Anshul Gupta Anthony-dominianni Anurag Kashyap apoorv06s aqiaojoe08 Alex Avance architect4dj Arin Tumbagi Arjun Soota Ariana Morgan Arpan Banerjee ArtemReva Arthur Silva arvindsrinathus-tech Ary Pathania Aziz Saifuddin Alicia Sedarski Ashish Patil Ash Ryan Arnwine ashtnemi448 Ashvin Ashvin Nihalani Aswin Damodar ataernam-coder PISIT KOOLPLUKPOL av-writes-code August Vi avmikhli1 Vivek V. ayahiro1729 Steven Chen beau-bright beholla-amzn Muhammad Abiodun SULAIMAN bellingman benquack88 Ben Wart berylqliu1122 bgrubin-amzn bhargav5000 bigchkn William Berry Billy Gerhard bkarson Matias Solis Bryan Landes Rina Wulandari Joel Blumenthal Bobby Earl Bojun Feng Bolin Chen Adeleke Adebowale J Brent Naylor breadcentric Brian Thomas Bryson Tyrrell Ray Xu XiaoChen Chris Abbey Canaut George Coll carttrp cathar Allan cbarlow1993 Celio Cidral Chance ChaonengQuan Chase CHENG Raymond Chen Yu Cheng ChrisBoomhower Chris Paton Christian Sidak Christopher Hanna Johnson chuazm chuqijiang2026 cixuuuuuuuuz Ckarthik18 Clare Liguori Jake Bédard Cody Hill Cole Whitley Sean Yang Connor LoPresti Jiacheng Wang Joshyfruit Christopher Plieger Matt Cohen Zezhen Xu Csan25 cschnidr Chris Miller ctyndall Dustin Fay Dagadansbot Wu Shuwen Dallin Kooyman Daniel-Alexandru Nistor DanieSharpe Dan McClain Darko Mesaros datoastmachine datowq davidtlee-amzn David Hara Davide Bisso dcorelibran Debasish Tripathy Xu Deng Dery Ferdika Parikshit Desai Pylyp Borysov Lucas Mendes DFayerman Diego Magalhães Dhaivat Patel DHILIP S E Wael Dixit R Jain Dave Killion Sourabh Khandelwal Doc Dom donisewell dougclauson David Britton dream-yen dscriptX Siming Deng Davide de Paolis Daryl Walleck Di Wu dwzhangx Dylan Lewis Eajaj Hossain D echorubisco Eduardo Vencovsky Emilson Moraes Pierre Emmanuella Dasilva-Domingos Ellian Carlos Elphas Toringepi Eric M Eric Neault Ahmed Hassanin Naveen Adarsh Eric Hays Erik Schweiss Evan Stenger Phil Estes ethanlevine Eleonora Toscano evajcwork-max Ezzat Qupty Stan Fan Fatih Çalış Felipe Kejian Wang fenjen filipgodina Finn H FlameFrost FlowTable0 Floze Florian Lukschander Dmitry Sitnikov Junhao Wang frankkuosh-bit Francesco Gallo François Siegwald gabrielmateitoma Gabriel Sanchez Gabriel geet sawhney Gerald Giridhar Shyam Gavin Mealy Vivek Teja Sayyaparaju Goutham GoZippy Grant Gollier Spencer Gregory Chapman Greyson Nevins Gerard Spivey Haowen Huang haozihong Jason Harding George Montana Harkin Harpreet Singh Hazli Johar Kathy Han Zezhou Wang helenastafford helvinho Eric Hemphill Hermite Bai hhllii hilljm-418 hlbence Hoang Thorsten Hoeger Henry Skiba Zihang Huang Hugo Costa Hung Vu Zejiang Guo (Joe) Angelo Yu inaoy IngridMorstrad Ishan Mishra Sebastiaan Brozius isotope14 Ivan Žiković j20120307 Siddhant Jain jakeg0615 Jake Zhao Jacob Nocentino janvoll Jason Zhang's Git javenciu jayaprakashreddy007 Jayde Mitchell Jayson Reis Jack Bandon Jeff Nunn Julia Drahozal Will Laws Jeff Neuberger Jeffrey Lewis Julian Gericke JiaDe WU jianwenl Jim Kincaid chao Jayson Rawlins jkasiraj jkiepert Jose T. Monagas Joao Guilherme Almeida Cesar David Qian Yaowen Zheng johann-sew John Crickett John Espenhahn Johnny Mastin johnnynaught jongaffen jorgerubio-tech joseph hu James Joseph Joseph Coombe Joshua Yeung Akash Vishwakarma Jean-Philippe Lachance JPontone jrha2 Jamie Toloui JJ_Q Jun Ohashi Justin Z jwoehrle Jan Thewes Jaden Yuros Matthew Kastro Kaique Govani Kai Mitsuzawa karl4c karraghu kawaji Zaman Kazimov kesh97-hub Kellen Jia 张景源 Kiavash kirankumar Kishore Baskar Jiahao Guo Ravi Teja Kondisetty Kyosuke Konishi Artem Krivonos Koushal koushikginjupally Krish Dhasmana krunalpa-amzn ksarieddine Ken Harrison Dushyant Kumar KV.ZZ Kyle Helmick Kyle Seaman Arnau Martín Lachlan Lindsay Bojin Li LandonCoe Lho Chen Yang Lee Clark leon-barsamian Leonard Leon Leo Zhadanovsky lester-gh Teodor Oprescu Liam Wirth John Li Liam lmambr2 Lindsay Chung Johannes Koch LOGESH S Louis Bompart Luca Chang Lucas Ravanello Mokwa Luccas Carvalho LuisBrel Luís Gabriel Lima Luke Jung Abhishek Aryan Kaiwei Luo luudtran Zhuoyu Li m2kinare MacintoshPlus89 maitianqcc mamaiti manish.gupta Manohar Swamynathan Marc Schuricht mariamalaidi Marcello Pagano Marvellous Adedapo Andres Ruiz Tommy Mathisen mattemara matt-kg Matthew McLeod maufee Maxim Soloviev Madhur Bajaj Matthew Briones Milos Chaloupka mclawben Michael Mathews mcryan Md Abu Sayeed Mihir Dhamankar Matthew Dwyer miamanav Michelle Ma George Midega Shuhei AKiyama Mike Mayer Mike Fiedler Mikhail Kuznetsov mimmus Minglong Pan MRP mkbarnum Michael Marc El Naameh MohammedAnes Molly Adair Manuel Ortiz Bey mrbeag Luke Dorosz DongHyun Kim Kotaro Inoue Mustafa Onur AYDIN Matt Van Horn Bach Huynh V. VN.Danang Dan Kiuna Nagabharan Nagendran Julian Aloofi nameetdutia Namra Saheba Nate Eklund Nathan Naveen Sundar Dmitriy Haudi Nathan Beals David Ney Anurag Matthew Nguyen nibelung-vault Nicholas Bowers Nick Truby Nihal Singh Nikhil Menon nikithajain888 Nick Papadopoulos Nishant Srivastava nitan2k Noah Guillory Fabian Fischer Beau Taylor Antoine Belluard Mark Lord oddisej Odin Wang Parwinder Singh Emmanuel Olowosulu Omar Abo Mokh Omer Rubinstein Rengang (Angelo) Yang Owen Phillips Parimal Deshmukh Patrick Sard patrigao Patryck Sans pbcoder Pearcekieser Stan Tian peterhieuvu philipjk Do Hoang Phong pierrms Sai Chaitanya Manchikatla Dirk Michel Piyush Yadav PK98121 james jiang Patrick MONTANARI PNg HA Matthew Pope John Law Pramod Dudhi prateekk Premshay presidentarrow Paul SANTUS pstarkgit ptias ptomooka Qifeng Huang TracerMain qinghua quangchu1 quansea Qusai Hussein Roman Ivanov raanan245 Rabinarayan Patra radical-beard Lei RahmLavon Rain Valentine raiyanlabs Rajnita Leichombam Raj Puram Christopher Raley ramdavid William Randall Jungseob Shin Luke Raghav Bhardwaj Roberto Cidade Fonseca realktmr Ryan V Jimmy Kilpatrick Lawrence Wang ReproDev richardgledhill Rishabh Rishabh Agrawal rittikg-amazon Rkee Roberto Luna-Rojas rmkumari0704 Robert Noack robchahin Rob Weaver robs-nice99 Rochak Gupta Austin Goddard RohanK6 Rohit Mehra Rohit Jose romeoleon1 ronaldtfaws ronyjacobjohn-tech Dama Roy Osherove Pranshu Ranakoti Tomas Rodriguez Ruben Cuevas Menendez rvinitra Ryan Cormack Ryan sallyacosta28-png Roman Sandler João Miguel Saran Kota SaRedfiche Satyam Thakur Saurav Kumar Gupta schebotarev Sam Cuthbertson Sebastian (Yu) Sun Sesh Balan Setul0712 John Reilly Pospos Sérgio Jesus Shai Bar-lev shaochew Shawn Li Shayan Shelby Hagman Shelomo Dobkin shelseyv Siddartha Martin Rowan Fabricio Escalante Shotaro Kataoka Shrihan Vijay shubag skagraw16 Rui Tao smeyffret Sam Oldak snowoody so0k Nikhil Solanki Dhaval Soneji Soroush Ahmadi Divan van Biljon Souptik Chakraborty Spandan Gopal Agrawal Srini Kulkarni Stephen Meehan stephenwiebe Steven J. Miklovic stifspear strannik19 Sudhamsu Manne sugan-kumar Sugavanesh B Suhas Aitham Sujeito Operator Sujoy Datta Choudhury Sungjin Yoo Swapnil Dixit SangwooChoi sxhmilyoyo Mujahed Syed Syncd SoonKim Tim Jones tahodev Takahiro Ishii Tarik Ermis Nolan Clayton Marcus Mann Rohan Rajeev Thomas Lane thiagoh think-imbaig ThomasthWolff Bryan Conklin ThR3742 Tiationg Kho Taiga Matsunaga Tim WU seongjin tkssk Tomasz Lauda Thomas Lobinger Trevor Mack Toby Wong Rob Wolinski Udit Tumuluri uatemycookie22 Uday Prakash Sajal Narang uzumakichillu Vaibhav Bhatia Vamil Gandhi vardaan-amzn Vitor Durante Veer Jain Venkatesh Babu AR Alexey Vidanov Vinay Shah Vishal Sahoo Vishal Vignesh Vishwanath Uppala vitaminac vivek-tiwari-amazon vokako w-wei105 Warren Chen WBui Sergio D. Rodríguez Inclán Arthur, Shihao Wang Yao Will Bowditch weihe08 weinansi Vadym Velykoivanenko wenliwyan Viren Khatri William Davies wknight1 Will Maillard wu5bocheng wundram xcom923 Xianwen-Peng xiaochao17 xj921022 XTX-TXT Serena Tan Albert Shubham Gupta Yashwanth Korla Yehui Yifan yilong016 Yogesh Selvarajan Yohanes Setiawan Shingo YOSHIDA 吉田真吾 Yousef De Baz 0xzs95 Sypher Su yystats78-uk yytdfc Zach Herridge Zach Akin-Amland Zakaria Akil zander8807 Akim Akimov Zeiad Zhaolong Zhang Zhe Lyu Ji zhihonl Zhongkai Liu Lin Zhu zifengxiazx 真寻Charlotte

Listed alphabetically by GitHub username. Internal contributors appear here if they consented to public recognition in the contributor survey; open-source contributors are collected automatically from this repository's merged pull requests — both the author of each pull request and the people who reported the issues it closed, so a report that led to a real change is credited like the change itself. Contributions that leave neither trace — a code review, a translation, an idea, a private security report — are added on request. If you contributed and would like to be added, corrected, or removed, please open an issue or a pull request.

License

Kiro Crew is licensed under the Apache License 2.0. See NOTICE for attribution information.

Collected info

  • 4,076 stars
  • 645 forks
  • Language: Python
  • Source updated: 9/22/2026