{"id":124641,"url":"https://github.com/quack-ai/companion","last_synced_at":"2026-06-16T17:30:20.882Z","repository":{"id":212065765,"uuid":"668560459","full_name":"quack-ai/companion","owner":"quack-ai","description":"VSCode coding companion for software teams 🦆 Turn your team insights into a portable plug-and-play context for code generation. Alternative to GitHub Copilot \u0026 OpenAI GPT powered by OSS LLMs (Phi 3, Llama 3, CodeQwen, Mistral, etc.), made with ❤️ using FastAPI \u0026 Ollama.","archived":true,"fork":false,"pushed_at":"2024-10-09T04:24:15.000Z","size":1499,"stargazers_count":53,"open_issues_count":6,"forks_count":9,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-28T08:05:23.632Z","etag":null,"topics":["ai","api","code-generation","code-quality","deep-learning","developer-tools","docker","fastapi","gpt4o","groq","llama","llm","mistral","ollama","open-source","openai","python","self-hosted","visual-studio-code","vscode"],"latest_commit_sha":null,"homepage":"https://docs.quackai.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/quack-ai.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":".github/CODEOWNERS","security":".github/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":"2023-07-20T05:20:44.000Z","updated_at":"2026-04-17T14:14:55.000Z","dependencies_parsed_at":"2026-01-13T15:00:51.302Z","dependency_job_id":null,"html_url":"https://github.com/quack-ai/companion","commit_stats":null,"previous_names":["quack-ai/contribution-api","quack-ai/companion"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/quack-ai/companion","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quack-ai%2Fcompanion","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quack-ai%2Fcompanion/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quack-ai%2Fcompanion/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quack-ai%2Fcompanion/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quack-ai","download_url":"https://codeload.github.com/quack-ai/companion/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/quack-ai%2Fcompanion/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33769492,"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-01T02:00:06.963Z","response_time":115,"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":"quack-ai","name":"Quack AI","uuid":"118990213","kind":"organization","description":"Enterprise-grade AI coding assistance is here","email":null,"website":"https://quack-ai.com","location":"France","twitter":"quack_ai","company":null,"icon_url":"https://avatars.githubusercontent.com/u/118990213?v=4","repositories_count":1,"last_synced_at":"2023-07-06T08:46:38.755Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/quack-ai","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2023-07-06T08:46:38.758Z","updated_at":"2023-07-06T08:46:38.758Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quack-ai","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/quack-ai/repositories"},"packages":[],"commits":{"id":1463663,"full_name":"quack-ai/companion","default_branch":"master","total_commits":143,"total_committers":4,"total_bot_commits":40,"total_bot_committers":2,"mean_commits":35.75,"dds":0.28671328671328666,"past_year_total_commits":0,"past_year_total_committers":0,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":0.0,"past_year_dds":0.0,"last_synced_at":"2026-06-11T15:04:29.429Z","last_synced_commit":"ce9a10ac7924aea41c9e2f23a6d92b9bd6ef8131","created_at":"2024-01-09T07:34:54.744Z","updated_at":"2026-06-11T15:04:15.535Z","committers":[{"name":"F-G Fernandez","email":"26927750+frgfm","login":"frgfm","count":102},{"name":"dependabot[bot]","email":"49699333+dependabot[bot]","login":"dependabot[bot]","count":38},{"name":"imgbot[bot]","email":"31301654+imgbot[bot]","login":"imgbot[bot]","count":2},{"name":"Ikko Eltociear Ashimine","email":"eltociear@gmail.com","login":"eltociear","count":1}],"past_year_committers":[],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/quack-ai%2Fcompanion/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-15T00:00:11.107Z","repositories_count":6259889,"commits_count":882492512,"contributors_count":35088204,"owners_count":1166796,"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":{"table":{"full_name":"quack-ai/companion","html_url":"https://github.com/quack-ai/companion","last_synced_at":"2026-03-09T17:02:47.973Z","status":"error","issues_count":2,"pull_requests_count":150,"avg_time_to_close_issue":5543407.0,"avg_time_to_close_pull_request":287531.652173913,"issues_closed_count":1,"pull_requests_closed_count":138,"pull_request_authors_count":5,"issue_authors_count":2,"avg_comments_per_issue":1.0,"avg_comments_per_pull_request":1.12,"merged_pull_requests_count":95,"bot_issues_count":1,"bot_pull_requests_count":90,"past_year_issues_count":0,"past_year_pull_requests_count":0,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":null,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":0,"past_year_pull_request_authors_count":0,"past_year_issue_authors_count":0,"past_year_avg_comments_per_issue":null,"past_year_avg_comments_per_pull_request":null,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":0,"created_at":"2024-01-09T07:35:16.786Z","updated_at":"2026-03-09T17:02:47.973Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/quack-ai%2Fcompanion","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/quack-ai%2Fcompanion/issues","issue_labels_count":{"table":{"dependencies":1,"in-work":1,"python":1}},"pull_request_labels_count":{"table":{"topic: build":108,"dependencies":95,"python":90,"type: misc":61,"topic: style":25,"topic: docker":24,"module: core":19,"topic: ci":15,"type: feat":14,"topic: docs":14,"type: improvement":14,"ext: tests":12,"endpoint: code":12,"endpoint: login":10,"ext: demo":9,"module: database":9,"module: schemas":8,"module: services":7,"topic: llm":7,"ext: scripts":7,"endpoint: users":7,"type: fix":6,"endpoint: repos":6,"endpoint: guidelines":5,"module: crud":4,"topic: migration":4,"module: models":3,"type: breaking change":3,"ext: docs":2,"ext: apm":2}},"issue_author_associations_count":{"table":{"MEMBER":1,"CONTRIBUTOR":1}},"pull_request_author_associations_count":{"table":{"CONTRIBUTOR":91,"MEMBER":53,"NONE":6}},"issue_authors":{"table":{"toscm":1,"dependabot[bot]":1}},"pull_request_authors":{"table":{"dependabot[bot]":90,"frgfm":53,"sarthakkapila":3,"eltociear":2,"asifrahaman13":2}},"host":{"table":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-06-15T00:00:22.443Z","repositories_count":14809315,"issues_count":33170969,"pull_requests_count":109444684,"authors_count":11307074,"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":{"table":{}},"past_year_pull_request_labels_count":{"table":{}},"past_year_issue_author_associations_count":{"table":{}},"past_year_pull_request_author_associations_count":{"table":{}},"past_year_issue_authors":{"table":{}},"past_year_pull_request_authors":{"table":{}},"maintainers":[{"table":{"login":"frgfm","count":53,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/frgfm"}},{"table":{"login":"toscm","count":1,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/toscm"}}],"active_maintainers":[]}},"events":{"total":{"WatchEvent":6},"last_year":{"WatchEvent":1}},"keywords":["ai","api","code-generation","code-quality","deep-learning","developer-tools","docker","fastapi","gpt4o","groq","llama","llm","mistral","ollama","open-source","openai","python","self-hosted","visual-studio-code","vscode"],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/pr-labels.yml","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:42.150Z","updated_at":"2026-01-13T15:00:42.150Z","repository_link":"https://github.com/quack-ai/companion/blob/main/.github/workflows/pr-labels.yml","dependencies":[{"id":25795978586,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false},{"id":25795978587,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":25795978588,"package_name":"actions/github-script","ecosystem":"actions","requirements":"v7","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"scripts/ollama/Dockerfile","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:47.989Z","updated_at":"2026-01-13T15:00:47.989Z","repository_link":"https://github.com/quack-ai/companion/blob/main/scripts/ollama/Dockerfile","dependencies":[{"id":25795978692,"package_name":"python","ecosystem":"docker","requirements":"3.11-alpine3.19","direct":true,"kind":"build","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pr-title.yml","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:42.496Z","updated_at":"2026-01-13T15:00:42.496Z","repository_link":"https://github.com/quack-ai/companion/blob/main/.github/workflows/pr-title.yml","dependencies":[{"id":25795978589,"package_name":"amannn/action-semantic-pull-request","ecosystem":"actions","requirements":"v5","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"auth/docker-compose.yml","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:42.649Z","updated_at":"2026-01-13T15:00:42.649Z","repository_link":"https://github.com/quack-ai/companion/blob/main/auth/docker-compose.yml","dependencies":[{"id":25795978590,"package_name":"supabase/gotrue","ecosystem":"docker","requirements":"v2.143.0","direct":true,"kind":"runtime","optional":false},{"id":25795978591,"package_name":"supabase/postgres","ecosystem":"docker","requirements":"15.1.0.147","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"docker","filepath":"demo/Dockerfile","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:43.717Z","updated_at":"2026-01-13T15:00:43.717Z","repository_link":"https://github.com/quack-ai/companion/blob/main/demo/Dockerfile","dependencies":[{"id":25795978592,"package_name":"python","ecosystem":"docker","requirements":"3.11-alpine3.19","direct":true,"kind":"build","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.dev.yml","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:45.159Z","updated_at":"2026-01-13T15:00:45.159Z","repository_link":"https://github.com/quack-ai/companion/blob/main/docker-compose.dev.yml","dependencies":[{"id":25795978593,"package_name":"postgres","ecosystem":"docker","requirements":"15-alpine","direct":true,"kind":"runtime","optional":false},{"id":25795978594,"package_name":"ollama/ollama","ecosystem":"docker","requirements":"0.2.1","direct":true,"kind":"runtime","optional":false},{"id":25795978595,"package_name":"quackai/companion","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.override.yml","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:46.649Z","updated_at":"2026-01-13T15:00:46.649Z","repository_link":"https://github.com/quack-ai/companion/blob/main/docker-compose.override.yml","dependencies":[]},{"ecosystem":"docker","filepath":"docker-compose.prod.yml","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:46.693Z","updated_at":"2026-01-13T15:00:46.693Z","repository_link":"https://github.com/quack-ai/companion/blob/main/docker-compose.prod.yml","dependencies":[{"id":25795978606,"package_name":"traefik","ecosystem":"docker","requirements":"v2.9.6","direct":true,"kind":"runtime","optional":false},{"id":25795978687,"package_name":"ollama/ollama","ecosystem":"docker","requirements":"0.2.1","direct":true,"kind":"runtime","optional":false},{"id":25795978688,"package_name":"quackai/companion","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false},{"id":25795978689,"package_name":"quackai/gradio","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false},{"id":25795978690,"package_name":"quackai/prometheus","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false},{"id":25795978691,"package_name":"quackai/grafana","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"docker","filepath":"scripts/ollama/docker-compose.yml","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:48.059Z","updated_at":"2026-01-13T15:00:48.059Z","repository_link":"https://github.com/quack-ai/companion/blob/main/scripts/ollama/docker-compose.yml","dependencies":[{"id":25795978694,"package_name":"ollama/ollama","ecosystem":"docker","requirements":"0.1.32","direct":true,"kind":"runtime","optional":false},{"id":25795978695,"package_name":"quackai/llm-evaluator","ecosystem":"docker","requirements":"latest","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"docker","filepath":"src/Dockerfile","sha":null,"kind":"manifest","created_at":"2026-01-13T15:00:49.676Z","updated_at":"2026-01-13T15:00:49.676Z","repository_link":"https://github.com/quack-ai/companion/blob/main/src/Dockerfile","dependencies":[{"id":25795978696,"package_name":"tiangolo/uvicorn-gunicorn-fastapi","ecosystem":"docker","requirements":"python3.9-alpine3.14","direct":true,"kind":"build","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/builds.yml","sha":null,"kind":"manifest","created_at":"2023-12-12T11:43:39.676Z","updated_at":"2023-12-12T11:43:39.676Z","repository_link":"https://github.com/quack-ai/companion/blob/main/.github/workflows/builds.yml","dependencies":[{"id":15047086160,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":15047086161,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":15047086162,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/pull_requests.yml","sha":null,"kind":"manifest","created_at":"2023-12-12T11:43:39.688Z","updated_at":"2023-12-12T11:43:39.688Z","repository_link":"https://github.com/quack-ai/companion/blob/main/.github/workflows/pull_requests.yml","dependencies":[{"id":15047086165,"package_name":"actions/labeler","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/push.yml","sha":null,"kind":"manifest","created_at":"2023-12-12T11:43:39.696Z","updated_at":"2023-12-12T11:43:39.696Z","repository_link":"https://github.com/quack-ai/companion/blob/main/.github/workflows/push.yml","dependencies":[{"id":15047086166,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15047086167,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":15047086168,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15047086169,"package_name":"docker/login-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":15047086170,"package_name":"appleboy/ssh-action","ecosystem":"actions","requirements":"v1.0.0","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/scripts.yml","sha":null,"kind":"manifest","created_at":"2023-12-12T11:43:39.705Z","updated_at":"2023-12-12T11:43:39.705Z","repository_link":"https://github.com/quack-ai/companion/blob/main/.github/workflows/scripts.yml","dependencies":[{"id":15047086171,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":15047086172,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":15047086173,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/style.yml","sha":null,"kind":"manifest","created_at":"2023-12-12T11:43:39.712Z","updated_at":"2023-12-12T11:43:39.712Z","repository_link":"https://github.com/quack-ai/companion/blob/main/.github/workflows/style.yml","dependencies":[{"id":15047086174,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15047086175,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":15047086176,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15047086177,"package_name":"actions/cache","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15047086178,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/tests.yml","sha":null,"kind":"manifest","created_at":"2023-12-12T11:43:39.719Z","updated_at":"2023-12-12T11:43:39.719Z","repository_link":"https://github.com/quack-ai/companion/blob/main/.github/workflows/tests.yml","dependencies":[{"id":15047086179,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15047086180,"package_name":"actions/setup-python","ecosystem":"actions","requirements":"v4","direct":true,"kind":"composite","optional":false},{"id":15047086181,"package_name":"abatilo/actions-poetry","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":15047086182,"package_name":"codecov/codecov-action","ecosystem":"actions","requirements":"v3","direct":true,"kind":"composite","optional":false},{"id":15047086183,"package_name":"frgfm/validate-python-headers","ecosystem":"actions","requirements":"main","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"docker","filepath":"docker-compose.yml","sha":null,"kind":"manifest","created_at":"2023-12-12T11:43:39.962Z","updated_at":"2023-12-12T11:43:39.962Z","repository_link":"https://github.com/quack-ai/companion/blob/main/docker-compose.yml","dependencies":[{"id":15047086188,"package_name":"postgres","ecosystem":"docker","requirements":"15-alpine","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"pypi","filepath":"poetry.lock","sha":null,"kind":"lockfile","created_at":"2023-12-12T11:43:39.968Z","updated_at":"2023-12-12T11:43:39.968Z","repository_link":"https://github.com/quack-ai/companion/blob/main/poetry.lock","dependencies":[{"id":15047086189,"package_name":"alembic","ecosystem":"pypi","requirements":"1.12.1","direct":false,"kind":null,"optional":false},{"id":15047086190,"package_name":"anyio","ecosystem":"pypi","requirements":"3.7.1","direct":false,"kind":null,"optional":false},{"id":15047086191,"package_name":"asyncpg","ecosystem":"pypi","requirements":"0.28.0","direct":false,"kind":null,"optional":false},{"id":15047086192,"package_name":"backoff","ecosystem":"pypi","requirements":"2.2.1","direct":false,"kind":null,"optional":false},{"id":15047086193,"package_name":"bcrypt","ecosystem":"pypi","requirements":"3.2.2","direct":false,"kind":null,"optional":false},{"id":15047086194,"package_name":"certifi","ecosystem":"pypi","requirements":"2023.7.22","direct":false,"kind":null,"optional":false},{"id":15047086195,"package_name":"cffi","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":null,"optional":false},{"id":15047086196,"package_name":"cfgv","ecosystem":"pypi","requirements":"3.4.0","direct":false,"kind":null,"optional":false},{"id":15047086197,"package_name":"charset-normalizer","ecosystem":"pypi","requirements":"3.3.1","direct":false,"kind":null,"optional":false},{"id":15047086198,"package_name":"click","ecosystem":"pypi","requirements":"8.1.7","direct":false,"kind":null,"optional":false},{"id":15047086199,"package_name":"colorama","ecosystem":"pypi","requirements":"0.4.6","direct":false,"kind":null,"optional":false},{"id":15047086200,"package_name":"coverage","ecosystem":"pypi","requirements":"7.3.2","direct":false,"kind":null,"optional":false},{"id":15047086201,"package_name":"distlib","ecosystem":"pypi","requirements":"0.3.7","direct":false,"kind":null,"optional":false},{"id":15047086202,"package_name":"ecdsa","ecosystem":"pypi","requirements":"0.18.0","direct":false,"kind":null,"optional":false},{"id":15047086203,"package_name":"exceptiongroup","ecosystem":"pypi","requirements":"1.1.3","direct":false,"kind":null,"optional":false},{"id":15047086204,"package_name":"fastapi","ecosystem":"pypi","requirements":"0.104.0","direct":false,"kind":null,"optional":false},{"id":15047086205,"package_name":"filelock","ecosystem":"pypi","requirements":"3.12.4","direct":false,"kind":null,"optional":false},{"id":15047086206,"package_name":"greenlet","ecosystem":"pypi","requirements":"3.0.1","direct":false,"kind":null,"optional":false},{"id":15047086207,"package_name":"h11","ecosystem":"pypi","requirements":"0.14.0","direct":false,"kind":null,"optional":false},{"id":15047086208,"package_name":"httpcore","ecosystem":"pypi","requirements":"0.18.0","direct":false,"kind":null,"optional":false},{"id":15047086209,"package_name":"httpx","ecosystem":"pypi","requirements":"0.25.0","direct":false,"kind":null,"optional":false},{"id":15047086210,"package_name":"identify","ecosystem":"pypi","requirements":"2.5.30","direct":false,"kind":null,"optional":false},{"id":15047086211,"package_name":"idna","ecosystem":"pypi","requirements":"3.4","direct":false,"kind":null,"optional":false},{"id":15047086212,"package_name":"iniconfig","ecosystem":"pypi","requirements":"2.0.0","direct":false,"kind":null,"optional":false},{"id":15047086213,"package_name":"mako","ecosystem":"pypi","requirements":"1.2.4","direct":false,"kind":null,"optional":false},{"id":15047086214,"package_name":"markdown-it-py","ecosystem":"pypi","requirements":"3.0.0","direct":false,"kind":null,"optional":false},{"id":15047086215,"package_name":"markupsafe","ecosystem":"pypi","requirements":"2.1.3","direct":false,"kind":null,"optional":false},{"id":15047086216,"package_name":"mdurl","ecosystem":"pypi","requirements":"0.1.2","direct":false,"kind":null,"optional":false},{"id":15047086217,"package_name":"monotonic","ecosystem":"pypi","requirements":"1.6","direct":false,"kind":null,"optional":false},{"id":15047086218,"package_name":"mypy","ecosystem":"pypi","requirements":"1.6.1","direct":false,"kind":null,"optional":false},{"id":15047086219,"package_name":"mypy-extensions","ecosystem":"pypi","requirements":"1.0.0","direct":false,"kind":null,"optional":false},{"id":15047086220,"package_name":"nodeenv","ecosystem":"pypi","requirements":"1.8.0","direct":false,"kind":null,"optional":false},{"id":15047086221,"package_name":"packaging","ecosystem":"pypi","requirements":"23.2","direct":false,"kind":null,"optional":false},{"id":15047086222,"package_name":"passlib","ecosystem":"pypi","requirements":"1.7.4","direct":false,"kind":null,"optional":false},{"id":15047086223,"package_name":"platformdirs","ecosystem":"pypi","requirements":"3.11.0","direct":false,"kind":null,"optional":false},{"id":15047086224,"package_name":"pluggy","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":null,"optional":false},{"id":15047086225,"package_name":"posthog","ecosystem":"pypi","requirements":"3.0.2","direct":false,"kind":null,"optional":false},{"id":15047086226,"package_name":"pre-commit","ecosystem":"pypi","requirements":"2.21.0","direct":false,"kind":null,"optional":false},{"id":15047086227,"package_name":"pyasn1","ecosystem":"pypi","requirements":"0.5.0","direct":false,"kind":null,"optional":false},{"id":15047086228,"package_name":"pycparser","ecosystem":"pypi","requirements":"2.21","direct":false,"kind":null,"optional":false},{"id":15047086229,"package_name":"pydantic","ecosystem":"pypi","requirements":"1.10.13","direct":false,"kind":null,"optional":false},{"id":15047086230,"package_name":"pygments","ecosystem":"pypi","requirements":"2.16.1","direct":false,"kind":null,"optional":false},{"id":15047086231,"package_name":"pytest","ecosystem":"pypi","requirements":"7.4.3","direct":false,"kind":null,"optional":false},{"id":15047086232,"package_name":"pytest-asyncio","ecosystem":"pypi","requirements":"0.21.1","direct":false,"kind":null,"optional":false},{"id":15047086233,"package_name":"pytest-cov","ecosystem":"pypi","requirements":"4.1.0","direct":false,"kind":null,"optional":false},{"id":15047086234,"package_name":"pytest-pretty","ecosystem":"pypi","requirements":"1.2.0","direct":false,"kind":null,"optional":false},{"id":15047086565,"package_name":"python-dateutil","ecosystem":"pypi","requirements":"2.8.2","direct":false,"kind":null,"optional":false},{"id":15047086566,"package_name":"python-jose","ecosystem":"pypi","requirements":"3.3.0","direct":false,"kind":null,"optional":false},{"id":15047086567,"package_name":"python-multipart","ecosystem":"pypi","requirements":"0.0.5","direct":false,"kind":null,"optional":false},{"id":15047086568,"package_name":"pyyaml","ecosystem":"pypi","requirements":"6.0.1","direct":false,"kind":null,"optional":false},{"id":15047086569,"package_name":"requests","ecosystem":"pypi","requirements":"2.31.0","direct":false,"kind":null,"optional":false},{"id":15047086570,"package_name":"rich","ecosystem":"pypi","requirements":"13.6.0","direct":false,"kind":null,"optional":false},{"id":15047086571,"package_name":"rsa","ecosystem":"pypi","requirements":"4.9","direct":false,"kind":null,"optional":false},{"id":15047086572,"package_name":"ruff","ecosystem":"pypi","requirements":"0.1.7","direct":false,"kind":null,"optional":false},{"id":15047086573,"package_name":"sentry-sdk","ecosystem":"pypi","requirements":"1.32.0","direct":false,"kind":null,"optional":false},{"id":15047086574,"package_name":"setuptools","ecosystem":"pypi","requirements":"68.2.2","direct":false,"kind":null,"optional":false},{"id":15047086575,"package_name":"six","ecosystem":"pypi","requirements":"1.16.0","direct":false,"kind":null,"optional":false},{"id":15047086576,"package_name":"sniffio","ecosystem":"pypi","requirements":"1.3.0","direct":false,"kind":null,"optional":false},{"id":15047086577,"package_name":"sqlalchemy","ecosystem":"pypi","requirements":"1.4.41","direct":false,"kind":null,"optional":false},{"id":15047086578,"package_name":"sqlalchemy-utils","ecosystem":"pypi","requirements":"0.38.3","direct":false,"kind":null,"optional":false},{"id":15047086579,"package_name":"sqlalchemy2-stubs","ecosystem":"pypi","requirements":"0.0.2a35","direct":false,"kind":null,"optional":false},{"id":15047086793,"package_name":"sqlmodel","ecosystem":"pypi","requirements":"0.0.8","direct":false,"kind":null,"optional":false},{"id":15047086794,"package_name":"starlette","ecosystem":"pypi","requirements":"0.27.0","direct":false,"kind":null,"optional":false},{"id":15047086795,"package_name":"tomli","ecosystem":"pypi","requirements":"2.0.1","direct":false,"kind":null,"optional":false},{"id":15047086796,"package_name":"types-passlib","ecosystem":"pypi","requirements":"1.7.7.13","direct":false,"kind":null,"optional":false},{"id":15047087027,"package_name":"types-pyasn1","ecosystem":"pypi","requirements":"0.5.0.0","direct":false,"kind":null,"optional":false},{"id":15047087032,"package_name":"types-python-jose","ecosystem":"pypi","requirements":"3.3.4.8","direct":false,"kind":null,"optional":false},{"id":15047087033,"package_name":"types-requests","ecosystem":"pypi","requirements":"2.31.0.10","direct":false,"kind":null,"optional":false},{"id":15047087034,"package_name":"typing-extensions","ecosystem":"pypi","requirements":"4.8.0","direct":false,"kind":null,"optional":false},{"id":15047087035,"package_name":"urllib3","ecosystem":"pypi","requirements":"2.0.7","direct":false,"kind":null,"optional":false},{"id":15047087036,"package_name":"uvicorn","ecosystem":"pypi","requirements":"0.23.2","direct":false,"kind":null,"optional":false},{"id":15047087037,"package_name":"virtualenv","ecosystem":"pypi","requirements":"20.24.6","direct":false,"kind":null,"optional":false}]},{"ecosystem":"pypi","filepath":"pyproject.toml","sha":null,"kind":"manifest","created_at":"2023-12-12T11:43:43.395Z","updated_at":"2023-12-12T11:43:43.395Z","repository_link":"https://github.com/quack-ai/companion/blob/main/pyproject.toml","dependencies":[{"id":15047087047,"package_name":"python","ecosystem":"pypi","requirements":"^3.9","direct":true,"kind":"runtime","optional":false},{"id":15047087048,"package_name":"uvicorn","ecosystem":"pypi","requirements":"\u003e=0.11.1,\u003c1.0.0","direct":true,"kind":"runtime","optional":false},{"id":15047087049,"package_name":"fastapi","ecosystem":"pypi","requirements":"\u003e=0.100.0,\u003c1.0.0","direct":true,"kind":"runtime","optional":false},{"id":15047087050,"package_name":"sqlmodel","ecosystem":"pypi","requirements":"^0.0.8","direct":true,"kind":"runtime","optional":false},{"id":15047087051,"package_name":"asyncpg","ecosystem":"pypi","requirements":"\u003e=0.25.0,\u003c1.0.0","direct":true,"kind":"runtime","optional":false},{"id":15047087052,"package_name":"bcrypt","ecosystem":"pypi","requirements":"^3.2.0","direct":true,"kind":"runtime","optional":false},{"id":15047087053,"package_name":"passlib","ecosystem":"pypi","requirements":"^1.7.4","direct":true,"kind":"runtime","optional":false},{"id":15047087054,"package_name":"python-jose","ecosystem":"pypi","requirements":"^3.2.0","direct":true,"kind":"runtime","optional":false},{"id":15047087055,"package_name":"requests","ecosystem":"pypi","requirements":"^2.20.0","direct":true,"kind":"runtime","optional":false},{"id":15047087056,"package_name":"python-multipart","ecosystem":"pypi","requirements":"==0.0.5","direct":true,"kind":"runtime","optional":false},{"id":15047087057,"package_name":"SQLAlchemy-Utils","ecosystem":"pypi","requirements":"^0.38.3","direct":true,"kind":"runtime","optional":false},{"id":15047087161,"package_name":"sentry-sdk","ecosystem":"pypi","requirements":"^1.14.0","direct":true,"kind":"runtime","optional":false},{"id":15047087162,"package_name":"alembic","ecosystem":"pypi","requirements":"^1.8.1","direct":true,"kind":"runtime","optional":false},{"id":15047087163,"package_name":"posthog","ecosystem":"pypi","requirements":"^3.0.0","direct":true,"kind":"runtime","optional":false}]}],"score":5.4638318050256105,"created_at":"2024-07-25T15:26:12.405Z","updated_at":"2026-06-16T17:30:20.882Z","avatar_url":"https://github.com/quack-ai.png","language":"Python","codemeta":null,"publiccode":null,"project_url":"https://summary.ecosyste.ms/api/v1/projects/124641","html_url":"https://summary.ecosyste.ms/projects/124641"}