{"id":35169783,"url":"https://github.com/acoyfellow/ditto","last_synced_at":"2025-12-28T20:05:51.906Z","repository":{"id":326105684,"uuid":"1101383826","full_name":"acoyfellow/ditto","owner":"acoyfellow","description":"Edge-native parallel LLM orchestration for Cloudflare Workers. Run multiple AI models in parallel, merge with consensus, orchestrate with Durable Objects.","archived":false,"fork":false,"pushed_at":"2025-11-25T15:43:09.000Z","size":217,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-11-28T21:30:05.771Z","etag":null,"topics":["ai","cloudflare-workers","durable-objects","edge-computing","llm","orchestration","parallel-computing","typescript"],"latest_commit_sha":null,"homepage":"https://www.npmjs.com/package/ditto-ai","language":"Svelte","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/acoyfellow.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"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":"2025-11-21T15:42:59.000Z","updated_at":"2025-11-28T13:55:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/acoyfellow/ditto","commit_stats":null,"previous_names":["acoyfellow/ditto"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/acoyfellow/ditto","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoyfellow%2Fditto","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoyfellow%2Fditto/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoyfellow%2Fditto/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoyfellow%2Fditto/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/acoyfellow","download_url":"https://codeload.github.com/acoyfellow/ditto/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/acoyfellow%2Fditto/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28080907,"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-12-27T02:00:05.897Z","response_time":58,"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"}},"keywords":["ai","cloudflare-workers","durable-objects","edge-computing","llm","orchestration","parallel-computing","typescript"],"created_at":"2025-12-28T20:04:45.411Z","updated_at":"2025-12-28T20:05:51.882Z","avatar_url":"https://github.com/acoyfellow.png","language":"Svelte","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Ditto\n\nEdge-native parallel LLM orchestration on Cloudflare Workers. Run multiple AI models in parallel, merge their outputs with consensus, and get back typed results.\n\nBuilt on Cloudflare Durable Objects for extreme durability and idempotency. Each job orchestrates parallel model calls using Effect for true concurrency at the edge.\n\nThis repository contains:\n- `packages/ditto-ai/` - npm package for LLM orchestration\n- `src/` - SvelteKit demo \u0026 docs deployed to `ditto.coey.dev`\n\n## Quick Start\n\n### Install\n\n```bash\nbun add ditto-ai\nnpm install ditto-ai\n```\n\n### Use\n\n```ts\nimport { dittoClient } from \"ditto-ai\";\n\nconst ditto = dittoClient({\n  endpoint: \"https://your-worker.workers.dev/llm\",\n});\n\nconst response = await ditto({\n  prompt: \"Summarize this email…\",\n  models: [\n    \"@cf/meta/llama-3.1-8b-instruct\",\n    \"@cf/mistral/mistral-7b-instruct\"\n  ],\n  strategy: \"consensus\",\n});\n\nconsole.log(response.result);      // merged output\nconsole.log(response.structured);  // intent, confidence, supporting models\n```\n\n## Features\n\n- **Parallel RPC orchestration** – Effect.all with unbounded concurrency for true parallelism\n- **Durable Object orchestration** – per-job state management with idempotency\n- **Unlimited concurrency** – scale to 100+ concurrent models per request\n- **Consensus merging** – intelligent combination with confidence scoring\n- **Structured analysis** – intent classification, hallucination detection\n- **Performance timings** – track total, fanout, slowest model, and merge time\n- **Type safety** – full TypeScript support\n- **Individual responses** – inspect each model's output\n- **Error handling** – typed `DittoError` with HTTP status codes\n\n## Documentation\n\n- **Full API Reference**: Visit `/docs` on the demo site\n- **Package README**: See [packages/ditto-ai/README.md](./packages/ditto-ai/README.md)\n- **Examples**: In [packages/ditto-ai/README.md](./packages/ditto-ai/README.md#examples)\n\n## Development\n\n```bash\n# Install dependencies\nbun install\n\n# Run dev server\nbun run dev\n\n# Build package\nbun run -f packages/ditto-ai build\n\n# Build \u0026 deploy\nbun run deploy\n```\n\n## Deployment\n\nThis project uses [Alchemy](https://alchemy.run) for Cloudflare deployment.\n\n```bash\nbun run deploy\n```\n\nThe demo app is deployed to `ditto.coey.dev` (see `alchemy.run.ts`).\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facoyfellow%2Fditto","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Facoyfellow%2Fditto","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Facoyfellow%2Fditto/lists"}