Check on an app
Find out whether your app is up, read its logs, and understand why a status of "running" isn't the same as "working".
Ask for it
is the booking app up?
Your agent refreshes the app's live status and tells you. Ask it to go one better:
open the URL and tell me what it returns
That's the check that means something. A container can be reported as running while the process inside it is crash-looping — the two are indistinguishable from the outside for a few seconds at a time.
What you can find out
| Question | Ask |
|---|---|
| What do I have online? | "list my agenthost apps" |
| Is this one up? | "check the status of the booking app" |
| Is it actually serving? | "fetch its URL and show me the response" |
| Why did it break? | "read the last 200 lines of its logs" |
| What's it configured with? | "what runtime and env vars does it have?" (names only, never values) |
| When was it last deployed? | "when did I last deploy that?" |
| Who can open it? | "who has access to it?" |
Reading logs
read the agenthost logs for the API and tell me what's wrong
Logs cover both the build (what happened while your app was being put together) and the run (what your app has printed since). Your agent reads them directly and can usually name the fix.
Logs are best-effort: right after a deploy, or during a restart, they can be briefly unavailable. If they are, hitting the URL still tells you whether the app is serving.
By default your agent fetches the last 100 lines; it can ask for up to 1000.
Statuses, and what they mean
| Status | What's happening | What to do |
|---|---|---|
created | The record exists, nothing built yet | Deploy something |
provisioning | Building, or queued to build | Wait — usually under a minute |
running | The container is up | Confirm with a real request |
stopped | Not serving | Ask your agent to redeploy it |
error | Provisioning or the build failed | Read the logs |
A status of running is not proof
A crash-looping container and a healthy one both read as running in a narrow window. Treat a real HTTP response from your app as the pass condition. See Checking a deploy.
Make it easy on yourself
If your app has a /health route that returns something trivial, checking it is unambiguous forever
after — for you, for your agent, and for anyone debugging it later.
@app.route("/health")
def health():
return {"ok": True}app.get("/health", (req, res) => res.json({ ok: true }));Tools: list_apps, get_app, get_app_logs.