{"id":36181,"name":"kani","description":"kani (カニ) is a highly hackable microframework for tool-calling language models. (NLP-OSS @ EMNLP 2023)","url":"https://github.com/zhudotexe/kani","last_synced_at":"2025-09-05T07:02:46.707Z","repository":{"id":182438737,"uuid":"666461223","full_name":"zhudotexe/kani","owner":"zhudotexe","description":"kani (カニ) is a highly hackable microframework for tool-calling language models. (NLP-OSS @ EMNLP 2023)","archived":false,"fork":false,"pushed_at":"2025-08-29T16:59:44.000Z","size":16073,"stargazers_count":587,"open_issues_count":6,"forks_count":31,"subscribers_count":10,"default_branch":"main","last_synced_at":"2025-08-30T17:15:22.571Z","etag":null,"topics":["chatgpt","framework","function-calling","gpt-4","large-language-models","llama","llms","microframework","openai","tool-use"],"latest_commit_sha":null,"homepage":"https://kani.readthedocs.io","language":"Python","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/zhudotexe.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"citation.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null},"funding":{"github":"zhudotexe","ko_fi":"zhuexe"}},"created_at":"2023-07-14T15:18:23.000Z","updated_at":"2025-08-29T16:59:48.000Z","dependencies_parsed_at":"2023-09-25T00:19:17.326Z","dependency_job_id":"f3473551-d61f-49e3-a76f-7c011c8131ca","html_url":"https://github.com/zhudotexe/kani","commit_stats":{"total_commits":445,"total_committers":6,"mean_commits":74.16666666666667,"dds":0.04943820224719098,"last_synced_commit":"42d5244922a1ef4a74586b003673616d89ba5a83"},"previous_names":["zhudotexe/kani"],"tags_count":40,"template":false,"template_full_name":null,"purl":"pkg:github/zhudotexe/kani","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhudotexe%2Fkani","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhudotexe%2Fkani/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhudotexe%2Fkani/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhudotexe%2Fkani/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhudotexe","download_url":"https://codeload.github.com/zhudotexe/kani/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhudotexe%2Fkani/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":273332890,"owners_count":25086963,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-09-02T02:00:09.530Z","response_time":77,"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"}},"owner":{"login":"zhudotexe","name":"Andrew Zhu","uuid":"8866981","kind":"user","description":"PhD @ UPenn || there once was a girl from purdue / who kept a young cat in a pew / she taught it to speak / alphabetical Greek / but it never got farther than μ","email":"","website":"https://zhu.codes","location":"Philadelphia, PA","twitter":null,"company":"University of Pennsylvania","icon_url":"https://avatars.githubusercontent.com/u/8866981?u=1f1c47b3ff17d76dbd4950c780cece202d6ee443\u0026v=4","repositories_count":88,"last_synced_at":"2024-05-01T11:20:05.118Z","metadata":{"has_sponsors_listing":true,"funding":{"github":"zhudotexe","ko_fi":"zhuexe"}},"html_url":"https://github.com/zhudotexe","funding_links":["https://github.com/sponsors/zhudotexe","https://ko-fi.com/zhuexe"],"total_stars":658,"followers":94,"following":29,"created_at":"2022-11-12T10:24:16.671Z","updated_at":"2024-05-01T11:20:27.845Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhudotexe","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zhudotexe/repositories"},"packages":null,"commits":{"id":1640116,"full_name":"zhudotexe/kani","default_branch":"main","committers":[{"name":"Andrew Zhu","email":"me@andrew-zhu.com","login":"zhudotexe","count":505},{"name":"Alyssa Hwang","email":"alyssahwang@seas.upenn.edu","login":"ahwang16","count":9},{"name":"maknee","email":"henryzhu52@gmail.com","login":"Maknee","count":6},{"name":"ImgBotApp","email":"ImgBotHelp@gmail.com","login":"ImgBotApp","count":4},{"name":"Liam Dugan","email":"ldugan@seas.upenn.edu","login":"liamdugan","count":2},{"name":"Lawrence Akka","email":"lakka@fake.email","login":"lawrenceakka","count":1},{"name":"Arturo León","email":"arturo@pincel.mx","login":"arturoleon","count":1}],"total_commits":528,"total_committers":7,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":75.42857142857143,"dds":0.04356060606060608,"past_year_committers":[{"name":"Andrew Zhu","email":"me@andrew-zhu.com","login":"zhudotexe","count":123},{"name":"Lawrence Akka","email":"lakka@fake.email","login":"lawrenceakka","count":1}],"past_year_total_commits":124,"past_year_total_committers":2,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":62.0,"past_year_dds":0.008064516129032251,"last_synced_at":"2025-08-11T07:37:31.202Z","last_synced_commit":"8fd760e3d00d18d557f1622cd5e6ea46a6e7f289","created_at":"2024-07-25T15:35:03.780Z","updated_at":"2025-08-11T07:37:31.312Z","commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhudotexe%2Fkani/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-08-23T00:00:23.482Z","repositories_count":5479765,"commits_count":853308191,"contributors_count":31095157,"owners_count":906558,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"zhudotexe/kani","html_url":"https://github.com/zhudotexe/kani","last_synced_at":"2025-08-31T17:47:03.139Z","status":"error","issues_count":16,"pull_requests_count":26,"avg_time_to_close_issue":2903391.909090909,"avg_time_to_close_pull_request":1497037.4166666667,"issues_closed_count":11,"pull_requests_closed_count":24,"pull_request_authors_count":9,"issue_authors_count":8,"avg_comments_per_issue":1.3125,"avg_comments_per_pull_request":0.23076923076923078,"merged_pull_requests_count":21,"bot_issues_count":0,"bot_pull_requests_count":4,"past_year_issues_count":2,"past_year_pull_requests_count":5,"past_year_avg_time_to_close_issue":699571.5,"past_year_avg_time_to_close_pull_request":169998.5,"past_year_issues_closed_count":2,"past_year_pull_requests_closed_count":4,"past_year_pull_request_authors_count":3,"past_year_issue_authors_count":2,"past_year_avg_comments_per_issue":2.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":2,"created_at":"2024-07-25T15:35:34.207Z","updated_at":"2025-09-02T10:26:42.100Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhudotexe%2Fkani","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/zhudotexe%2Fkani/issues","issue_labels_count":{"enhancement":10,"bug":1,"good first issue":1},"pull_request_labels_count":{},"issue_author_associations_count":{"OWNER":6,"NONE":6,"CONTRIBUTOR":1,"COLLABORATOR":1},"pull_request_author_associations_count":{"OWNER":17,"NONE":10,"COLLABORATOR":4,"CONTRIBUTOR":3},"issue_authors":{"zhudotexe":6,"oneilsh":2,"lawrenceakka":1,"lucifer0007":1,"ranfdev":1,"dcssi":1,"evanbrociner":1,"ahwang16":1},"pull_request_authors":{"zhudotexe":17,"anthoeknee":4,"imgbot[bot]":4,"ahwang16":3,"lawrenceakka":2,"Maknee":2,"arturoleon":1,"liamdugan":1},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2025-09-02T00:00:07.986Z","repositories_count":10037815,"issues_count":30578064,"pull_requests_count":91035988,"authors_count":10388060,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{"bug":1,"enhancement":1},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"CONTRIBUTOR":1,"NONE":1},"past_year_pull_request_author_associations_count":{"OWNER":6,"NONE":6},"past_year_issue_authors":{"lawrenceakka":1,"oneilsh":1},"past_year_pull_request_authors":{"zhudotexe":6,"anthoeknee":4,"lawrenceakka":2},"maintainers":[{"login":"zhudotexe","count":23,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zhudotexe"},{"login":"ahwang16","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/ahwang16"},{"login":"liamdugan","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/liamdugan"}],"active_maintainers":[{"login":"zhudotexe","count":6,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/zhudotexe"}]},"events":{"total":{"CreateEvent":18,"IssuesEvent":4,"ReleaseEvent":10,"WatchEvent":32,"DeleteEvent":11,"IssueCommentEvent":7,"PushEvent":80,"PullRequestReviewEvent":2,"PullRequestReviewCommentEvent":2,"PullRequestEvent":6,"ForkEvent":3},"last_year":{"CreateEvent":18,"IssuesEvent":4,"ReleaseEvent":10,"WatchEvent":33,"DeleteEvent":11,"IssueCommentEvent":7,"PushEvent":80,"PullRequestReviewEvent":2,"PullRequestReviewCommentEvent":2,"PullRequestEvent":6,"ForkEvent":3}},"keywords":["chatgpt","framework","function-calling","gpt-4","large-language-models","llama","llms","microframework","openai","tool-use"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/lint.yml","sha":null,"kind":"manifest","created_at":"2023-07-20T01:49:14.680Z","updated_at":"2023-07-20T01:49:14.680Z","repository_link":"https://github.com/zhudotexe/kani/blob/main/.github/workflows/lint.yml","dependencies":[{"id":11732224830,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":11732224831,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pytest.yml","sha":null,"kind":"manifest","created_at":"2023-07-20T01:49:14.694Z","updated_at":"2023-07-20T01:49:14.694Z","repository_link":"https://github.com/zhudotexe/kani/blob/main/.github/workflows/pytest.yml","dependencies":[{"id":11732224833,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":11732224834,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pythonpublish.yml","sha":null,"kind":"manifest","created_at":"2023-07-20T01:49:14.702Z","updated_at":"2023-07-20T01:49:14.702Z","repository_link":"https://github.com/zhudotexe/kani/blob/main/.github/workflows/pythonpublish.yml","dependencies":[{"id":11732224835,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":11732224836,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":11732224837,"package_name":"pypa/gh-action-pypi-publish","ecosystem":"actions","requirements":"release/v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-07-20T01:49:14.709Z","updated_at":"2023-07-20T01:49:14.709Z","repository_link":"https://github.com/zhudotexe/kani/blob/main/pyproject.toml","dependencies":[{"id":11732224838,"package_name":"aiohttp","ecosystem":"pypi","requirements":"\u003e=3.0.0,\u003c4.0.0","direct":true,"kind":"runtime","optional":false},{"id":11732224839,"package_name":"cachetools","ecosystem":"pypi","requirements":"\u003e=5.0.0,\u003c6.0.0","direct":true,"kind":"runtime","optional":false},{"id":11732224840,"package_name":"pydantic","ecosystem":"pypi","requirements":"\u003e=2.0.0,\u003c3.0.0","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"requirements.txt","sha":null,"kind":"manifest","created_at":"2023-07-20T01:49:14.716Z","updated_at":"2023-07-20T01:49:14.716Z","repository_link":"https://github.com/zhudotexe/kani/blob/main/requirements.txt","dependencies":[{"id":11732224841,"package_name":"aiohttp","ecosystem":"pypi","requirements":"\u003e=3.0.0,\u003c4.0.0","direct":true,"kind":"runtime","optional":false},{"id":11732224842,"package_name":"cachetools","ecosystem":"pypi","requirements":"\u003e=5.0.0,\u003c6.0.0","direct":true,"kind":"runtime","optional":false},{"id":11732224843,"package_name":"pydantic","ecosystem":"pypi","requirements":"\u003e=2.0.0,\u003c3.0.0","direct":true,"kind":"runtime","optional":false},{"id":11732224844,"package_name":"torch","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224845,"package_name":"transformers","ecosystem":"pypi","requirements":"\u003e=4.0.0,\u003c5.0.0","direct":true,"kind":"runtime","optional":false},{"id":11732224846,"package_name":"sentencepiece","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224847,"package_name":"tiktoken","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224848,"package_name":"black","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224849,"package_name":"build","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224850,"package_name":"pytest","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224851,"package_name":"twine","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224852,"package_name":"furo","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224853,"package_name":"sphinx","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224854,"package_name":"sphinxemoji","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224855,"package_name":"sphinx-copybutton","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224856,"package_name":"sphinx-inline-tabs","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":11732224857,"package_name":"sphinxext-opengraph","ecosystem":"pypi","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/docs.yml","sha":null,"kind":"manifest","created_at":"2023-09-25T00:19:13.705Z","updated_at":"2023-09-25T00:19:13.705Z","repository_link":"https://github.com/zhudotexe/kani/blob/main/.github/workflows/docs.yml","dependencies":[{"id":13928331975,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":13928331976,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]}],"score":8.33110454805304,"created_at":"2025-09-04T15:51:09.727Z","updated_at":"2025-10-07T08:14:58.582Z","avatar_url":"https://github.com/zhudotexe.png","language":"Python","category":null,"sub_category":null,"monthly_downloads":0,"funding_links":["https://github.com/sponsors/zhudotexe","https://ko-fi.com/zhuexe"],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":["hack"],"project_url":"https://science.ecosyste.ms/api/v1/projects/36181","html_url":"https://science.ecosyste.ms/projects/36181","bibtex_url":"https://science.ecosyste.ms/projects/36181/export.bibtex","apalike_url":"https://science.ecosyste.ms/projects/36181/export.apalike"}