Use when Codex needs to launch, restart, or smoke-test the copied MiroFlow API server without editing the upstream repo in ~/MiroThinker/apps/miroflow-agent.
Launch the copied MiroFlow FastAPI server from this skill folder without editing the upstream repo.
~/MiroThinker/apps/miroflow-agentDo not use this skill to refresh the copied snapshot or to patch upstream source logic.
./scripts/run_miroflow_agent_server.sh [Hydra overrides]./scripts/stop_miroflow_agent_server.sh./scripts/test_miroflow_agent_server.sh [image-file]MIROFLOW_PYTHON=/path/to/python (env override)The skill uses a skill-local .venv by default. On first use, preflight first run bootstraps that environment from requirements.txt and the copied ; later runs reuse it and only do a quick readiness check. The skill uses as the default bootstrap tool rather than .
pyproject.tomluvpython -m venvAny extra arguments passed to ./scripts/run_miroflow_agent_server.sh ... are forwarded directly to api_server.py as Hydra overrides.
Use this to switch the server's default LLM config at launch time:
./scripts/run_miroflow_agent_server.sh llm=gpt-5
./scripts/run_miroflow_agent_server.sh llm=qwen-3
./scripts/run_miroflow_agent_server.sh llm=glm-5-agenthub
The currently exposed LLM choices are the config names under:
scripts/miroflow-agent-server/conf/llm/
At the time of writing, those include:
claude-3-7claude-haiku-4.5gemini-2.5-flashgemini-3-flash-agenthubgemini-3-progemini-3-pro-agenthubglm-5-agenthubgpt-5gpt-5.2-agenthubqwen-3Hydra override values use the config basename without the .yaml suffix.
OPENAI_API_KEYOPENAI_BASE_URLSERPER_API_KEY, SERPER_BASE_URLJINA_API_KEY, JINA_BASE_URLE2B_API_KEYSUMMARY_LLM_API_KEY, SUMMARY_LLM_BASE_URL, SUMMARY_LLM_MODEL_NAMEIf a run needs extra providers or tool integrations, check scripts/miroflow-agent-server/.env.example for the full expected environment.
./scripts/run_miroflow_agent_server.sh
./scripts/stop_miroflow_agent_server.sh
./scripts/test_miroflow_agent_server.sh [image-file]
curl --noproxy '*' http://127.0.0.1:7210/health
Copied source lives in scripts/miroflow-agent-server/; logs go to logs/.
The launched server exposes three client-facing endpoints:
GET /health — lightweight health check for liveness/readinessPOST /v1/api/execute — submit one request and receive streamed NDJSON outputPOST /v1/api/upload — upload one file into the sandbox bound to X-Session-IdFor detailed request/response shapes and examples in both curl and pure Python, see:
API_USAGE.mdThat reference also documents:
X-Session-Id/v1/api/execute/v1/api/uploadcurl --noproxy '*' http://127.0.0.1:7210/health returns HTTP 200 with {"status":"healthy"}logs/7210--noproxy '*'..venv, or set MIROFLOW_PYTHON=/path/to/python to an environment that already has MiroFlow dependencies installed../scripts/stop_miroflow_agent_server.sh only kills a listener if /proc/<pid>/cwd points at this skill's copied server directory and the command line matches api_server.py../scripts/run_miroflow_agent_server.sh has been started in a suitable environment./scripts/stop_miroflow_agent_server.sh cleanly stops only the verified skill-owned listener on port 7210curl --noproxy '*' http://127.0.0.1:7210/health succeedslogs/scripts/miroflow-agent-server/ as a copied source snapshot; do not rewrite it unless the user explicitly asks to refresh the copy.~/MiroThinker/apps/miroflow-agent instead of editing the snapshot in place.logs/ manually if repeated runs make the directory grow too large.