{"id":49488382,"url":"https://github.com/clawdi-ai/clawdi","last_synced_at":"2026-06-06T00:02:21.651Z","repository":{"id":353726086,"uuid":"1217078336","full_name":"Clawdi-AI/clawdi","owner":"Clawdi-AI","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-21T06:53:39.000Z","size":5506,"stargazers_count":75,"open_issues_count":26,"forks_count":11,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-05-21T07:19:24.328Z","etag":null,"topics":["agent","agent-cloud","claude-code","codex","hermes-agent","openclaw"],"latest_commit_sha":null,"homepage":"https://clawdi.ai","language":"TypeScript","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/Clawdi-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":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-04-21T14:20:44.000Z","updated_at":"2026-05-21T06:53:07.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Clawdi-AI/clawdi","commit_stats":null,"previous_names":["clawdi-ai/clawdi","clawdi-ai/clawdi-cloud"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/Clawdi-AI/clawdi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clawdi-AI%2Fclawdi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clawdi-AI%2Fclawdi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clawdi-AI%2Fclawdi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clawdi-AI%2Fclawdi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Clawdi-AI","download_url":"https://codeload.github.com/Clawdi-AI/clawdi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Clawdi-AI%2Fclawdi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33424573,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-23T22:14:44.296Z","status":"online","status_checked_at":"2026-05-24T02:00:06.296Z","response_time":57,"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":["agent","agent-cloud","claude-code","codex","hermes-agent","openclaw"],"created_at":"2026-05-01T03:03:33.722Z","updated_at":"2026-06-06T00:02:21.642Z","avatar_url":"https://github.com/Clawdi-AI.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003eClawdi\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eThe best home for all your AI agents — Projects, sessions, memory, skills, cron jobs, and app connections.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/clawdi\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/clawdi?style=for-the-badge\u0026logo=npm\u0026color=cb3837\" alt=\"npm version\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Clawdi-AI/clawdi/actions/workflows/cli-publish.yml\"\u003e\u003cimg src=\"https://img.shields.io/github/actions/workflow/status/Clawdi-AI/clawdi/cli-publish.yml?branch=main\u0026style=for-the-badge\u0026logo=githubactions\u0026logoColor=white\u0026label=CI\" alt=\"CI status\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/Clawdi-AI/clawdi/stargazers\"\u003e\u003cimg src=\"https://img.shields.io/github/stars/Clawdi-AI/clawdi?style=for-the-badge\u0026logo=github\" alt=\"GitHub stars\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/License-MIT-blue.svg?style=for-the-badge\" alt=\"MIT License\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://clawdi.ai\"\u003eWebsite\u003c/a\u003e ·\n  \u003ca href=\"https://github.com/Clawdi-AI/clawdi\"\u003eGitHub\u003c/a\u003e ·\n  \u003ca href=\"https://deepwiki.com/Clawdi-AI/clawdi\"\u003eDocs\u003c/a\u003e ·\n  \u003ca href=\"https://www.npmjs.com/package/clawdi\"\u003enpm\u003c/a\u003e ·\n  \u003ca href=\"docs/architecture.md\"\u003eArchitecture\u003c/a\u003e ·\n  \u003ca href=\"docs/ai-providers.md\"\u003eAI Providers\u003c/a\u003e ·\n  \u003ca href=\"#quickstart\"\u003eQuickstart\u003c/a\u003e ·\n  \u003ca href=\"#cli-reference\"\u003eCLI Reference\u003c/a\u003e ·\n  \u003ca href=\"#troubleshooting\"\u003eTroubleshooting\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/images/dashboard-preview.png\" alt=\"Clawdi dashboard\" width=\"900\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.star-history.com/#Clawdi-AI/clawdi\u0026Date\"\u003e\n    \u003cimg src=\"https://api.star-history.com/svg?repos=Clawdi-AI/clawdi\u0026type=Date\" alt=\"Clawdi star history chart\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n\u003e Think of Clawdi as iCloud for AI agents — install once on any device, and your Claude Code, Codex, Hermes, and OpenClaw agents share the same memory, secrets, skills, sessions, and app connections. Switch frameworks or machines; nothing gets lost.\n\nThe fastest way to try it is hosted Clawdi Cloud. The whole stack is also here: MIT-licensed CLI, FastAPI backend, Next.js dashboard, database schema, migrations, and docs. Use the hosted service, self-host it, fork it, or build your own agent sync layer from the pieces.\n\n## Quickstart\n\n```bash\nnpm i -g clawdi\n\nclawdi auth login\nclawdi setup\nclawdi doctor\n```\n\nThat gets you:\n\n- Browser-based login to Clawdi Cloud\n- Agent auto-detection for Claude Code, Codex, Hermes, and OpenClaw\n- MCP registration so your agent can call Clawdi tools\n- The bundled `clawdi` skill installed into each detected agent\n- Background sync daemons installed and started for every registered agent\n- A health check that verifies auth, agent paths, vault access, and MCP config\n\nBy default the CLI talks to hosted Clawdi Cloud. Want to run your own backend? See [Own the Stack](#own-the-stack).\n\nRequires Node ≥ 22.5 (the CLI uses the built-in `node:sqlite` module).\n\nYou can also try without installing:\n\n```bash\nnpx clawdi --help\n```\n\nHeadless environment? Use the manual flow:\n\n```bash\nclawdi auth login --manual\n```\n\n## Why Clawdi\n\nAI agents are still treated like isolated apps. Claude Code has one set of sessions and instructions. Codex has another. Secrets sit in shell profiles and `.env` files. Useful memories get trapped in whichever agent happened to learn them. App integrations get rebuilt from scratch every time you switch tools.\n\nClawdi is the shared layer underneath:\n\n- **Cross-agent memory** — Store durable preferences, decisions, facts, and project context once. Search them from any connected agent.\n- **Portable skills** — Upload or install agent instructions once, then sync them into every registered agent.\n- **Project sharing** — Share read-only Project access from the dashboard or CLI, accept it from a share page or CLI inbox, and explicitly attach accepted Projects to Agents when they should be used at runtime.\n- **Session sync** — Push local session history to the dashboard for review and recall.\n- **Vault secrets** — Store secrets server-side, commit only `clawdi://` references, and resolve them at runtime.\n- **AI Providers** — Define model providers once, keep keys in env/Vault/auth profiles, and apply verified Codex, Hermes, or OpenClaw agent config without proxying BYOK model traffic.\n- **App connections** — Hook agents into Notion, Gmail, Drive, Calendar, Linear, GitHub, and more from the dashboard. Tools show up inside every connected agent automatically over MCP.\n- **MCP tools** — Memory, vault, and connector tools served through the Model Context Protocol so any MCP-aware agent can use them.\n\nIn practice — teach one agent something:\n\n```text\nremember that this repo uses Bun for TypeScript and PDM for backend scripts\n```\n\nLater, in a different agent or a fresh session, ask \"what package manager should I use here?\" — it can call Clawdi memory search and answer from your actual context instead of guessing.\n\nRun a fullstack dev command with vault references without putting plaintext secrets on disk:\n\n```bash\nprintf '%s\\n' \"$OPENAI_API_KEY\" | clawdi vault set OPENAI_API_KEY --stdin\nclawdi vault import --vault prod --section stripe --project personal --yes .env.stripe\necho \"OPENAI_API_KEY=clawdi://project/\u003cproject-id\u003e/vault/default/field/OPENAI_API_KEY\" \u003e .env.clawdi\nclawdi run --dry-run --env-file .env.clawdi -- npm run dev\nclawdi run --env-file .env.clawdi -- npm run dev\nclawdi read clawdi://project/\u003cproject-id\u003e/vault/default/field/OPENAI_API_KEY\nclawdi inject --dry-run --in .env.clawdi --out .env.local\nclawdi inject --force --in .env.clawdi --out .env.local\n```\n\nVaults are account-level key bundles. Projects attach to a Vault to use the same shared key set. `clawdi vault set`, `clawdi vault import`, `clawdi vault rm`, and `clawdi vault list` print the concrete Project target or exact references that include the Project ID. `vault set` supports `--value` and `--stdin` for scripts; `vault import` supports `--vault`, `--section`, `--project`, and warns about skipped invalid dotenv identifiers. Use `clawdi vault attach \u003cvault\u003e --project \u003cproject\u003e` to make an existing Vault available in another Project, and `clawdi vault detach \u003cvault\u003e --project \u003cproject\u003e` to remove one Project's access without deleting keys. `vault rm` deletes a key from the shared Vault; when a Vault is attached to multiple Projects, it requires `--global`. Project-relative references such as `clawdi://default/OPENAI_API_KEY` still work for portable templates, but exact references are the default copy/read UX.\n\nAgents should prefer `clawdi run --env-file .env.clawdi -- \u003ccommand\u003e` when they can launch the tool themselves. Use `clawdi inject` only for tools that must read a physical `.env.local`; generated files are written owner-only and should stay gitignored.\n\nUse `--dry-run` on `clawdi read`, `clawdi inject`, `clawdi run`, and `clawdi vault resolve` to verify provenance without requesting plaintext values. `clawdi doctor` checks vault metadata only; it does not resolve stored secrets.\n\nSync a local CLI credential profile to another machine. For Codex model-provider\nauth, prefer the AI Provider commands in the next section; the lower-level\n`agent credentials` commands remain available for compatibility and for\nnon-provider CLI credentials such as Claude Code and GitHub CLI.\n\n```bash\nclawdi agent credentials import claude-code\nclawdi agent credentials import gh\nclawdi agent credentials materialize claude-code\nclawdi agent credentials materialize gh\n```\n\nCredential profile sync is separate from `clawdi run`: it stores and restores a supported tool's local auth file, while `run` injects explicit `clawdi://` references into one child process. Profiles default to your stable Personal Project so `import` on one machine and `materialize` on another resolve the same namespace. They are personal backup/restore artifacts: shared Project viewers and env-bound Agent keys cannot materialize them. macOS Keychain imports are guarded behind `--source keychain` and require explicit `--keychain-service` plus `--keychain-account`; Clawdi does not guess or silently scrape credential-store items, and Keychain reads cannot use `--yes`.\n\nManage model providers without turning Clawdi into a model proxy:\n\n```bash\nclawdi ai-provider add openai-main \\\n  --type openai \\\n  --default-model gpt-5.2 \\\n  --auth env:OPENAI_API_KEY \\\n  --capability chat \\\n  --capability responses \\\n  --capability tools\n\nclawdi ai-provider validate openai-main\nclawdi ai-provider test openai-main        # config + auth availability\nclawdi ai-provider test openai-main --live # optional direct provider probe\n```\n\nAI Provider metadata lives in `~/.clawdi/ai-providers/catalog.json`; API keys do not. Use `env:...` refs, `clawdi://...` Vault refs, `none` for local unauthenticated endpoints, or a verified auth profile such as `agent:codex/default`. BYOK model requests still go directly from the agent runtime to OpenAI, Anthropic, OpenRouter, Gemini, Mistral, or your compatible endpoint.\n\nApply provider config explicitly, with a dry run first:\n\n```bash\nclawdi ai-provider apply openai-main --dry-run\nclawdi ai-provider apply openai-main\ncodex --profile clawdi-ai-provider\n\nclawdi ai-provider apply openai-main --target hermes --dry-run\nclawdi ai-provider apply openai-main --target openclaw --dry-run\n```\n\nCodex OAuth is managed through the AI Provider surface:\n\n```bash\nclawdi ai-provider add openai-codex \\\n  --type openai \\\n  --default-model gpt-5-codex \\\n  --auth agent:codex/default\nclawdi ai-provider connect openai-codex --tool codex\nclawdi ai-provider apply openai-codex\n```\n\n`apply openai-codex` writes compatible target config and materializes the Codex\nOAuth profile into each selected target's native auth store. For the default\ntarget set, that means `$CODEX_HOME/auth.json`, `$HERMES_HOME/auth.json`, and\nOpenClaw's `agents/\u003cagentId\u003e/agent/auth-profiles.json`. Those projections do\nnot write API key refs for OAuth-backed providers.\n\nUse `clawdi ai-provider connect ... --callback manual` in headless environments. Export/import is metadata-only by default; `--include-secrets` requires passphrase-encrypted secret export.\n\nCurrent vault storage is server-managed encryption. Clawdi avoids plaintext secrets in repo files and local templates, but the backend can decrypt stored vault values and credential profiles today. Do not treat this release as zero-knowledge.\n\nInstall a shared skill into every registered agent at once:\n\n```bash\nclawdi skill install anthropics/skills/artifacts-builder\n```\n\n## Roadmap\n\nToday Clawdi gives individuals and read-only Project collaborators a shared layer across their agents. Two bigger bets come next.\n\nThe first is autonomy. Agents should work without you at the keyboard.\n\n- Cron jobs for recurring agent runs.\n- Remote control for agents on any of your machines.\n- Automatic memory built from session history.\n\nThe second is deepening multi-player workflows beyond read-only Project sharing.\n\n- Richer team roles and broader access controls.\n- Shared memory, skills, and connections.\n- An agent-to-agent channel for handoff and ask-for-help.\n- Task tracking that every connected agent can use.\n\nWe'll also keep adding adapters. Cursor, OpenCode, Amp, Pi, and others. The same memory, skills, and connections follow you everywhere.\n\nWant any of this sooner? [Open an issue](https://github.com/Clawdi-AI/clawdi/issues). What's loud is what we build first.\n\n## Hosted or Self-Hosted\n\nClawdi has two intended paths.\n\n### Use Clawdi Cloud\n\nBest for trying it in minutes.\n\n```bash\nnpm i -g clawdi\nclawdi auth login\nclawdi setup\n```\n\nThe published CLI defaults to the hosted API. You get the least setup friction and can focus on wiring agents, memories, skills, and vault secrets.\n\n### Own the Stack\n\nBest when you want to inspect, modify, self-host, or build on Clawdi.\n\n```bash\ngit clone https://github.com/Clawdi-AI/clawdi.git\ncd clawdi\nbun install\ndocker compose up -d postgres\n```\n\nThen run the backend and dashboard locally:\n\n```bash\ncd backend\ncp .env.example .env\npdm install\npdm migrate\npdm dev\n```\n\n```bash\ncd ../apps/web\ncp .env.example .env.local\nbun run dev\n```\n\nPoint your CLI at your local backend:\n\n```bash\nclawdi config set apiUrl http://localhost:8000\n```\n\nLocal self-hosting currently expects:\n\n- Node.js 22.5+ and Bun 1.3+\n- Python 3.12 with PDM\n- PostgreSQL 16 with `pg_trgm` and `pgvector`\n- Clerk keys for dashboard auth\n- Two generated encryption keys for vault data and MCP bridge JWTs\n- **One backend process** until v1.5. The `clawdi daemon` realtime SSE fan-out lives in process memory (`backend/app/services/sync_events.py`), so a broadcast on worker A doesn't reach a daemon attached to worker B. Run a single uvicorn worker (or one gunicorn worker with `--workers 1`) behind your reverse proxy. Multi-process fan-out via Postgres LISTEN/NOTIFY ships in v1.5.\n\nSee [`backend/.env.example`](backend/.env.example) and [`apps/web/.env.example`](apps/web/.env.example) for the exact environment variables.\n\n## What Is In This Repo\n\n```text\napps/web/          Next.js 16 dashboard with Clerk auth, shadcn/ui, Tailwind v4\npackages/cli/      Published `clawdi` CLI, agent adapters, and MCP server\npackages/shared/   Shared API types, schemas, and constants\nbackend/           FastAPI backend, SQLAlchemy models, Alembic migrations\ndocs/              Architecture notes, scenarios, and development guides\n```\n\nThe system is deliberately boring where it should be:\n\n- FastAPI API server\n- PostgreSQL for structured data and memory search\n- File storage for session and skill bodies\n- Local CLI state under `~/.clawdi`\n- MCP stdio server spawned by each agent\n- No Redis, Celery, or hidden worker fleet required for the core local stack\n\nFor the deeper map, read [`docs/architecture.md`](docs/architecture.md).\n\n## Supported Agents\n\n| Agent | Sessions | Skills | MCP setup |\n| --- | --- | --- | --- |\n| Claude Code | Yes | Yes | Automatic |\n| Codex | Yes | Yes | Automatic |\n| Hermes | Yes | Yes | Automatic |\n| OpenClaw | Yes | Yes | Manual MCP hint where required |\n\nEach agent has a dedicated adapter in [`packages/cli/src/adapters`](packages/cli/src/adapters). Adding another agent means implementing the same adapter shape: detect it, read sessions, read/write skills, and define how commands run with injected env.\n\n## CLI Reference\n\n| Command | What it does |\n| --- | --- |\n| `clawdi auth login` / `logout` | Authenticate this machine |\n| `clawdi status [--json]` | Show auth and sync state |\n| `clawdi config list/get/set/unset` | Read or write CLI configuration |\n| `clawdi setup [--agent \u003ctype\u003e] [--no-daemon]` | Register local agents, install MCP, install the bundled skill, and install/start the singleton daemon by default |\n| `clawdi teardown [--agent \u003ctype\u003e]` | Remove Clawdi's local agent wiring |\n| `clawdi daemon run/install/status/logs/doctor/restart/uninstall/ping/rotate-token` | Run, inspect, and control the singleton background sync daemon (`serve` remains a legacy alias) |\n| `clawdi push` | Upload sessions and skills |\n| `clawdi pull` | Download cloud skills into registered agents |\n| `clawdi session list/extract` | Inspect local agent sessions |\n| `clawdi memory list/search/add/rm` | Manage cross-agent long-term memory |\n| `clawdi skill list/add/install/rm/init` | Manage portable skills |\n| `clawdi project create/list/show/share/share-links/invite/invites/members/leave/unshare` | Manage Projects and read-only sharing |\n| `clawdi inbox [accept/decline/forget]` | Accept invitations and share links |\n| `clawdi agent projects list/attach/detach/move` | View the fixed Agent Project and manage attached Projects |\n| `clawdi agent credentials import/materialize` | Compatibility backup/restore for local CLI credential profiles; use `ai-provider import-auth/connect/materialize-auth` for Codex provider auth |\n| `clawdi ai-provider list/add/edit/remove/validate/test/connect/import-auth/materialize-auth/apply/status/export/import` | Manage portable model providers, auth refs, Codex OAuth/profile auth, tests, verified Codex/Hermes/OpenClaw agent config apply, and provider-only export/import |\n| `clawdi project folder link/status/unlink` | Link a local folder to a Project for vault reference selection |\n| `clawdi vault set/list/import/attach/detach/rm` | Manage encrypted secrets, Project access, and copy exact references |\n| `clawdi read \u003cclawdi://...\u003e` | Explicitly print one vault reference value |\n| `clawdi inject --in \u003cfile\u003e --out \u003cfile\u003e` | Render `clawdi://` references into templates |\n| `clawdi run --env-file \u003cfile\u003e -- \u003ccmd\u003e` | Run a command with explicit vault references resolved |\n| `clawdi doctor` | Diagnose auth, agent paths, vault, and MCP config |\n| `clawdi update` | Install the latest CLI version (`--check` only reports) |\n| `clawdi mcp` | Start the MCP stdio server used by agents |\n\nAuto-update is enabled by default for all newer releases, including majors. Human CLI invocations update the global CLI in the background; installed daemons check on their own cadence, install silently, then let launchd/systemd restart them onto the new code. Disable both with `CLAWDI_NO_AUTO_UPDATE=1` or `clawdi config set autoUpdate false`.\n\nEvery command supports `--help`.\n\nApp connections are configured in the [Clawdi Cloud dashboard](https://clawdi.ai) and surface inside agents automatically over MCP — there is no CLI command to manage them.\n\n## Development\n\nInstall dependencies:\n\n```bash\nbun install\n```\n\nRun the web app and workspace dev tasks:\n\n```bash\nbun run dev\n```\n\nRun the backend:\n\n```bash\ncd backend\npdm dev\n```\n\nRun checks:\n\n```bash\nbun run check\nbun run typecheck\n\ncd backend\npdm lint\npdm test\n```\n\nRun the CLI from source:\n\n```bash\nbun run packages/cli/src/index.ts --help\n```\n\nBuild and link the CLI locally:\n\n```bash\ncd packages/cli\nbun run build\nbun link\nclawdi --version\n```\n\n## Troubleshooting\n\nRun the diagnostic first:\n\n```bash\nclawdi doctor\n```\n\nCommon issues:\n\n- **`clawdi auth login` fails** - Re-run login, or use `clawdi auth login --manual` in headless environments.\n- **No supported agent detected** - Install a supported agent or pass `--agent claude_code`, `--agent codex`, `--agent hermes`, or `--agent openclaw`.\n- **Memory search is empty** - Add a memory first with `clawdi memory add \"...\"`, then verify with `clawdi memory search \"...\"`.\n- **Local backend cannot start because `vector` is missing** - Install `pgvector` for your PostgreSQL 16 instance, or use the included Docker Compose database.\n- **Agent MCP tools look stale** - Run `clawdi setup --agent \u003ctype\u003e` again, then `clawdi daemon restart`.\n\n## License\n\nMIT. See [`LICENSE`](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclawdi-ai%2Fclawdi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fclawdi-ai%2Fclawdi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fclawdi-ai%2Fclawdi/lists"}