# InfraStack for agents

InfraStack is a security watchdog. It checks every new vulnerability, exploit, vendor incident, malicious package and attack on AI tooling against one stack, and sends one message when a threat actually affects it, with the fix quoted from the vendor's advisory. This page is for a coding agent (Claude Code, Codex, Cursor, Devin, OpenClaw and the like) setting InfraStack up for the person it works for.

## Three ways in

- **Slack, for a team.** A person installs the Slack app at https://infrastack.ai/slack/install (OAuth, so a human does it). The watchdog then lives in a channel: a morning board, an afternoon brief, questions answered in threads, GitHub connectable for continuous reading. Not agent-driven; you can prepare the stack for them to paste in the onboarding.
- **Email, by hand.** A person signs up at https://infrastack.ai/signup/email, runs the prompt there in their coding agent and pastes the result. The watchdog writes to their inbox: the first check the next morning at 8 AM their time, one email when a threat is theirs, replies answered in-thread.
- **Email, by agent.** The rest of this page: you collect the stack, sign them up, open the confirmation link from their mailbox, and keep a token to add to the stack and ask questions. Same account and same emails as the manual path.

All three start free: the first check and the daily watching cost nothing and need no card. Plans and usage prices are at https://infrastack.ai/pricing (Email: Free, Pro $20 a month, Business; Slack: Free, Pro $149 a month).

## Where things are

The site map is https://infrastack.ai/llms.txt: every page as markdown, the live feed's index, the API reference (https://infrastack.ai/docs.md). Every call takes an `agent` field saying who is calling, as name/version (for example `claude-code/2.1.309`, `codex`, `devin`, `openclaw`); it is required on sign-up.

## The flow

1. Collect the stack. Don't read source code and don't analyze anything; look only at manifests, lockfiles, Dockerfiles, CI and infra configs, and the README. Write one line per heading (the headings are in the prompts, next section) and gather the files to send.
2. `POST https://infrastack.ai/api/agent/signup` with the person's email, the stack lines and the files. The answer is always `202 {"status":"check_email"}`: whether the address is new or known, nothing in the response says which.
3. Confirm. We email the person a link. Open it: from their mailbox if you can read it, or ask them to click it. The page it lands on shows a bearer token, once; that token is yours from then on. If the person opened it, they hand the token to you.
4. From then on, with `Authorization: Bearer <token>`: `POST /api/agent/stack` to add more, `POST /api/agent/ask` to ask whether a threat affects them, `GET /api/agent/status` to see the account.

## The task

The same task the sign-up page hands to a person's coding agent, one version per use case, is at https://infrastack.ai/signup/prompts.md. Run the matching one on yourself: the output is the `stack` (ten lines, one per heading) and the files to send; `use_case` on sign-up takes the matching key. Write "unknown" where you can't tell. At least 60 characters in total; a bare email is refused.

## After sign-up: what to watch for

Everything arrives by email, to the address you signed up, from InfraStack (watchdog@email.infrastack.ai):

- Right after verification: a welcome saying what was understood and when the first check lands.
- The next morning at 8 AM in the person's timezone, and every day after: the check. Most days it is one line saying nothing reaches them. When something does, it says what, why it is theirs, and the fix.
- Any time a threat is exploited in the wild and touches their stack: one email, right away.

Every one of those emails can be replied to. A reply is how the person, or you reading the mailbox for them, asks a question ("does this reach our staging too?"), adds context ("we also run Redis 7 on Upstash", or a file attached), or changes things ("send the morning check at 7", "pause for two weeks", "use Berlin time"). The answer comes back in the same thread. The token calls below do the same from code: `/api/agent/ask` for a question, `/api/agent/stack` for context. Schedule changes are by reply for now.

## Files worth sending

Lockfiles (package-lock.json, yarn.lock, pnpm-lock.yaml, uv.lock, poetry.lock, requirements.txt, go.sum, Cargo.lock, Gemfile.lock, composer.lock), Dockerfiles and compose files, Terraform, Helm and Kubernetes files, CI workflow files, Dependabot or Renovate config. Up to 20 files, 10 MB together. Text files as `content`, anything else as `content_b64`.

Never send .env files, .tfvars, private keys or anything holding secrets. They are refused by name, and the content of everything you send is screened before it is stored.

## Limits

Sign-up: 5 requests an hour per network, one email per address per 10 minutes. The link works once and for 48 hours. With a token: 30 stack updates and 20 questions an hour. Rate-limited calls answer `429` with `retry_after_s`.

## If you'd rather hand the paste to a person

The sign-up page at https://infrastack.ai/signup/email has the same prompt for a person to run in their agent and paste the result. Either path ends in the same account.
