# anythingllm-devtools — API HTTP Service sous [`services/anythingllm-devtools/`](../../services/anythingllm-devtools/). Écoute par défaut sur **`127.0.0.1:37146`**. ## Authentification Toutes les routes sauf **`GET /health`** exigent : ```http Authorization: Bearer ``` ## Routes ### `GET /health` Sans auth. Corps JSON : `{ "ok": true, "service": "anythingllm-devtools" }`. ### `GET /v1/workspaces` Liste les workspaces AnythingLLM (`GET …/api/v1/workspaces` amont). Réponse `200` : ```json { "workspaces": [ { "id": 1, "name": "…", "slug": "…" } ] } ``` Erreurs `503` si `ANYTHINGLLM_BASE_URL` ou `ANYTHINGLLM_API_KEY` manquent. ### `POST /v1/devtools/run` Exécute une ou plusieurs lignes de commandes (même grammaire que l’ancien panneau extension : `/repos-clone`, `/repos-clone-sync`, `repos-list`, `/repos-load`, `/repos-load-sync`, `/workspace-load`, `/workspace-sync`, `help`). Corps JSON (une des deux formes) : ```json { "script": "/repos-list\n/workspace-sync my-repo" } ``` ```json { "lines": [ "/repos-list", "/workspace-sync my-repo" ] } ``` Réponse `200` : ```json { "ok": true, "output": "…", "actions": [ { "type": "openFolder", "path": "/abs/path/to/repo" }, { "type": "openWorkspaceUrl", "slug": "my-slug", "url": "https://…/workspace/my-slug" } ] } ``` Le serveur n’ouvre ni dossier ni navigateur : `actions` indique ce que le client peut faire localement. Erreurs `400` : corps JSON invalide ou message d’erreur métier (ex. repo introuvable). ## Voir aussi - [anythingllm-workspaces.md](../anythingllm-workspaces.md) - [extension-anythingllm-workspaces.md](../repo/extension-anythingllm-workspaces.md) (extension IDE supprimée ; service HTTP uniquement) - [repos-devtools-server.md](./repos-devtools-server.md)