{"id":47284403,"url":"https://github.com/project-david-ai/projectdavid-core","last_synced_at":"2026-04-24T04:02:52.225Z","repository":{"id":252438962,"uuid":"840434622","full_name":"project-david-ai/projectdavid-core","owner":"project-david-ai","description":"The core source files to this  self-hostable successor to the OpenAI Assistants API. To contribute to the core logic, fork or submit pull requests to this repro.","archived":false,"fork":false,"pushed_at":"2026-04-19T02:47:01.000Z","size":19811,"stargazers_count":5,"open_issues_count":0,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-04-19T04:30:57.207Z","etag":null,"topics":["ai-platform","assistants-api","docker","firejail","gdpr","llm","multi-agent","openai-compatible","orchestration","python","rag-pipeline","self-hosted","tool-calling","vllm","vllm-serve"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/project-david-ai.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"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":"2024-08-09T17:41:26.000Z","updated_at":"2026-04-19T02:47:03.000Z","dependencies_parsed_at":"2024-09-11T03:50:56.825Z","dependency_job_id":"ced1b908-f024-405a-8a56-e6ed45baeae6","html_url":"https://github.com/project-david-ai/projectdavid-core","commit_stats":null,"previous_names":["frankie336/entities_api","project-david-ai/platform","project-david-ai/projectdavid-core"],"tags_count":87,"template":false,"template_full_name":null,"purl":"pkg:github/project-david-ai/projectdavid-core","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid-core","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid-core/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid-core/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid-core/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/project-david-ai","download_url":"https://codeload.github.com/project-david-ai/projectdavid-core/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/project-david-ai%2Fprojectdavid-core/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32208480,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T03:15:14.334Z","status":"ssl_error","status_checked_at":"2026-04-24T03:15:11.608Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["ai-platform","assistants-api","docker","firejail","gdpr","llm","multi-agent","openai-compatible","orchestration","python","rag-pipeline","self-hosted","tool-calling","vllm","vllm-serve"],"created_at":"2026-03-16T05:23:37.099Z","updated_at":"2026-04-24T04:02:52.202Z","avatar_url":"https://github.com/project-david-ai.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Project David — Platform\n\n[![License: PolyForm Noncommercial](https://img.shields.io/badge/license-PolyForm%20Noncommercial%201.0.0-blue.svg)](https://polyformproject.org/licenses/noncommercial/1.0.0/)\n[![Docker Pulls](https://img.shields.io/docker/pulls/thanosprime/entities-api-api?label=API%20Pulls\u0026logo=docker\u0026style=flat-square)](https://hub.docker.com/r/thanosprime/entities-api-api)\n[![Docker Image Version](https://img.shields.io/docker/v/thanosprime/entities-api-api?sort=semver\u0026label=API%20Version\u0026style=flat-square)](https://hub.docker.com/r/thanosprime/entities-api-api/tags)\n[![CI](https://github.com/frankie336/entities_api/actions/workflows/ci.yml/badge.svg?branch=master)](https://github.com/frankie336/entities_api/actions/workflows/ci.yml)\n\n**From the lab to enterprise grade orchestration — instantly.**\n\nThe open source, GDPR compliant, security audited successor to the OpenAI Assistants API.\nSame primitives. Every model. Your infrastructure.\n\n[![Project David](https://raw.githubusercontent.com/frankie336/entities_api/master/assets/projectdavid_logo.png)](https://raw.githubusercontent.com/frankie336/entities_api/master/assets/projectdavid_logo.png)\n\n---\n\n## What is Project David?\n\nProject David is a full-scale, containerized LLM orchestration platform built\naround the same primitives as the OpenAI Assistants API — **Assistants, Threads,\nMessages, Runs, and Tools** — but without the lock-in.\n\n- **Provider agnostic** — Hyperbolic, TogetherAI, Ollama, or any OpenAI-compatible endpoint\n- **Every model** — hosted APIs today, raw local weights tomorrow via Project Uni5\n- **Your infrastructure** — fully self-hostable, GDPR compliant, security audited\n- **Production grade** — sandboxed code execution (FireJail PTY), multi-agent delegation, file serving with signed URLs, real-time streaming frontend\n\n---\n\n## Why Project David?\n\n| | OpenAI Assistants API | LangChain | Project David |\n|---|---|---|---|\n| Assistants / Threads / Runs primitives | ✅ | ❌ | ✅ |\n| Provider agnostic | ❌ | Partial | ✅ |\n| Local model support | ❌ | Partial | ✅ |\n| Raw weights → orchestration | ❌ | ❌ | ✅ *(Uni5)* |\n| Sandboxed code execution | ✅ Black box | ❌ | ✅ FireJail PTY |\n| Multi-agent delegation | Limited | ❌ | ✅ |\n| Self-hostable | ❌ | ✅ | ✅ |\n| GDPR compliant | ❌ | N/A | ✅ |\n| Security audited | N/A | N/A | ✅ |\n| Open source | ❌ | ✅ | ✅ |\n\n---\n\n## Quick Start\n\n**1. Install the local package.**\n\n```bash\npip install -e .\n```\n\n**2. Build and start the Docker stack.**\n\n```bash\nplatform-api docker-manager --mode both\n```\n\n\u003e 📦 **What gets generated on first run**\n\u003e\n\u003e | File | What it contains |\n\u003e |---|---|\n\u003e | `.env` | Unique locally-generated secrets — DB passwords, `DEFAULT_SECRET_KEY`, `SEARXNG_SECRET_KEY` etc. Never committed to version control. |\n\u003e | `docker-compose.yml` | A fully-wired Compose file referencing those secrets. |\n\u003e\n\u003e Both files are created once and left untouched on subsequent runs.\n\nVerify the CLI:\n\n```bash\nplatform-api --help\n```\n\n```\nUsage: platform-api [OPTIONS] COMMAND [ARGS]...\n\n Entities API management CLI.\n\n╭─ Commands ───────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╮\n│ configure        Update variables in an existing .env without regenerating secrets.                                                                                              │\n│ bootstrap-admin  Provision the default admin user inside the running api container.                                                                                              │\n╰──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╯\n\n```\n\nFor the full command reference see [Docker orchestration commands →](https://github.com/project-david-ai/projectdavid_docs/blob/master/src/pages/api-infra/docker_commands.md)\n\n---\n\n**3. Provision your admin credentials.**\n\nSet `SPECIAL_DB_URL` before running:\n\n```bash\n# Linux / macOS\nexport SPECIAL_DB_URL=mysql+pymysql://user:password@localhost:3307/entities_db\n```\n\n```powershell\n# Windows PowerShell\nGet-Content .env | ForEach-Object {\n    if ($_ -match '^\\s*([^#][^=]+)=(.*)$') {\n        [System.Environment]::SetEnvironmentVariable($matches[1].Trim(), $matches[2].Trim())\n    }\n}\n```\n\nThen run:\n\n```bash\nplatform-api bootstrap-admin bootstrap-admin\n```\n\nOr explicitly:\n\n```bash\nplatform-api bootstrap-admin \\\n  --db-url \"mysql+pymysql://user:password@localhost:3307/entities_db\" \\\n  --email \"admin@example.com\" \\\n  --name \"Default Admin\"\n```\n\nExpected output:\n\n```\n================================================================\n  ✓  Admin API Key Generated\n================================================================\n  Email   : admin@example.com\n  User ID : user_abc123...\n  Prefix  : ad_abc12\n----------------------------------------------------------------\n  API KEY : ad_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n----------------------------------------------------------------\n  This key will NOT be shown again.\n================================================================\n```\n\n\u003e ⚠️ **Store this key immediately.** It is shown exactly once and cannot be recovered.\n\n---\n\n**4. Provision your first user.**\n\n```bash\npip install projectdavid\n```\n\n```python\nimport os\nfrom dotenv import load_dotenv\nfrom projectdavid import Entity\n\nload_dotenv()\nclient = Entity(api_key=os.getenv(\"ADMIN_API_KEY\"))\n\nnew_user = client.users.create_user(\n    full_name=\"Kevin Flynn\",\n    email=\"flynn@encom.com\",\n    is_admin=False,\n)\nprint(new_user)\n```\n\nIssue the user an API key:\n\n```python\napi_key = client.keys.create_key_for_user(\n    target_user_id=new_user.id,\n    key_name=\"The Grid\"\n)\nprint(api_key.plain_key)\n# ea_z_5YV4zGly50UHKlenc9BgTCQXtE....\n```\n\n\u003e ⚠️ **Do not use the admin key for general API calls.**\n\nThe user is now ready to connect via the SDK:\n\n```python\nclient = Entity(api_key=os.getenv(\"USER_API_KEY\"))\n```\n\n---\n\n## Architecture\n\n![Project David Stack](https://raw.githubusercontent.com/project-david-ai/projectdavid-platform/master/assets/svg/projectdavid-stack.svg)\n\n---\n\n\n\n## Documentation\n\n| Topic | Link |\n|---|---|\n| Full Documentation | [docs.projectdavid.co.uk](https://docs.projectdavid.co.uk/docs) |\n| SDK Quick Start | [docs.projectdavid.co.uk/docs/sdk-quick-start](https://docs.projectdavid.co.uk/docs/sdk-quick-start) |\n| Docker Commands | [docs.projectdavid.co.uk/docs/docker_commands](https://docs.projectdavid.co.uk/docs/docker_commands) |\n| Providers | [docs.projectdavid.co.uk/docs/providers](https://docs.projectdavid.co.uk/docs/providers) |\n\n\u003e Full hosted docs: [docs.projectdavid.co.uk](https://docs.projectdavid.co.uk/docs)\n---\n\n## Related Repositories\n\n| Repo | Description |\n|---|---|\n| [projectdavid](https://github.com/project-david-ai/projectdavid) | Python SDK |\n| [entities-common](https://github.com/project-david-ai/entities-common) | Shared utilities and validation |\n| [david-core](https://github.com/project-david-ai/david-core) | Docker orchestration layer |\n| [reference-frontend](https://github.com/project-david-ai/reference-frontend) | Reference streaming frontend |\n| [entities_cook_book](https://github.com/project-david-ai/entities_cook_book) | Minimal tested examples |\n\n---\n\n## License\n\nDistributed under the [PolyForm Noncommercial License 1.0.0](https://polyformproject.org/licenses/noncommercial/1.0.0/).\nCommercial licensing available upon request.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-david-ai%2Fprojectdavid-core","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fproject-david-ai%2Fprojectdavid-core","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fproject-david-ai%2Fprojectdavid-core/lists"}