{% extends "curb_base.html" %} {# Overview: each agent's risk as a picture, what to do next, and an introduction. #} {% block part %} {% if machine_held.value is none %} {% if machine_held.error %}{{ k.failed(machine_held.error) }}{% else %}{{ k.checking() }}{% endif %} {% else %}
{{ headline }}
Each agent as it starts outside any project. {{ k.checked(machine_held) }}
The last check did not finish. {{ machine_held.error }}.
What you see is from the check before it.
{{ line }}
{% endfor %} {% if cards %}{{ card.lede }}
{{ card.why }}
{{ k.ways(card) }}Curb checks Claude Code and Codex. Neither is set up on this machine yet.
{% endcall %} {% endif %} {% if todo %}Curb checks again each time you open this page. On a team device, it also checks at each session start, and tells you when an agent can reach more.
{% endcall %} {% endif %} {% call k.explain("New to Curb?", "Four things to know, and where everything is.", new_here) %}Curb reads. It does not run. It reads each agent's settings and looks for credentials on this machine. It runs nothing from your projects.
Risk comes from two questions. Can the agent read your credentials? Can it send data out? Both is High. Reading with no way out is Medium. No reading is Low.
A button with a shield changes something. You see what will change, then your operating system asks you. Curb backs up each file for 7 days, so you can undo it.
Names stay hidden. Which credentials, and where they are, shows only when you ask, for 5 minutes.
Curb keeps its reports on this machine only. Delete what Curb has stored…
{% endcall %}