AI coding agents
Building with Cursor, Claude Code, Windsurf or Codex? Give your agent one prompt, or a standing rule, and it marks every image, video and audio file your app generates for the EU AI Act and California. It reads our docs as plain text.
In short
- The prompt: below, ready to paste.
- Docs for agents: kennmarq.com/llms.txt (the index), llms-full.txt (all of it), and any docs page as Markdown at its address plus
.md. - The key: a free one from the dashboard, kept in
KENNMARQ_API_KEYon the server. - Checking: drop a result on kennmarq.com/check.
1. Get a key
Sign up for free, confirm your email, and create a key in the dashboard: a test key while you build, a live one for production. Put it in your server's environment:
Shell
export KENNMARQ_API_KEY="sk_test_…"2. Give your agent the prompt
Prompt
Mark every AI image, video and audio file this app generates with Kennmarq.com before it's stored or shown. The API docs are at https://kennmarq.com/llms.txt. Send each file to POST https://api.kennmarq.com/v1/mark with the key from the KENNMARQ_API_KEY environment variable, and pass provider, app_name, app_version, source and markets=eu,us-ca. For deep fakes, realistic depictions of real people, places or events, also send deepfake=true: it adds the visible "AI" label. Keep only the marked file.3. Or make it a standing rule
A rule keeps the marks in place as your app grows: every new feature that makes images, video or audio gets them too. Add this to AGENTS.md, which many coding agents read, or to CLAUDE.md for Claude Code:
AGENTS.md
## AI content marking (Kennmarq.com)
- Every image, video or audio file this app generates with AI is marked before it's stored or shown: send it to POST https://api.kennmarq.com/v1/mark and keep only the file that comes back.
- Call the API from server code only, with the key in the KENNMARQ_API_KEY environment variable. The key never reaches a browser or a mobile app.
- Send provider (our legal name), app_name and app_version (this app), source (created, composite or edited) and markets=eu,us-ca; add kr or in when the app serves South Korea or India.
- Deep fakes (realistic depictions of real people, places or events) also get deepfake=true, which draws the visible "AI" label into the picture or every frame of the video. label=true adds it to any picture or video.
- If marking fails, the request fails: never show or store an unmarked file.
- Files over 4 MB, and every video, go up first through POST https://api.kennmarq.com/v1/uploads. Videos are marked as jobs: 202, then GET the mark's url until it's completed.
- Docs: https://kennmarq.com/llms.txt; all of them in one file: https://kennmarq.com/llms-full.txt.For Cursor, as a project rule in .cursor/rules/kennmarq.mdc:
.cursor/rules/kennmarq.mdc
---
description: Mark AI-generated images, video and audio with Kennmarq.com
alwaysApply: true
---
- Every image, video or audio file this app generates with AI is marked before it's stored or shown: send it to POST https://api.kennmarq.com/v1/mark and keep only the file that comes back.
- Call the API from server code only, with the key in the KENNMARQ_API_KEY environment variable. The key never reaches a browser or a mobile app.
- Send provider (our legal name), app_name and app_version (this app), source (created, composite or edited) and markets=eu,us-ca; add kr or in when the app serves South Korea or India.
- Deep fakes (realistic depictions of real people, places or events) also get deepfake=true, which draws the visible "AI" label into the picture or every frame of the video. label=true adds it to any picture or video.
- If marking fails, the request fails: never show or store an unmarked file.
- Files over 4 MB, and every video, go up first through POST https://api.kennmarq.com/v1/uploads. Videos are marked as jobs: 202, then GET the mark's url until it's completed.
- Docs: https://kennmarq.com/llms.txt; all of them in one file: https://kennmarq.com/llms-full.txt.What your agent should send
| Field | What it is |
|---|---|
provider | Your legal name, as the provider of the AI system. |
app_name, app_version | Your app: the AI system California's latent disclosure names. |
source | created (made by AI), edited (an existing file changed with AI) or composite. |
markets | eu,us-ca, or the markets you serve: a call missing what their laws need is refused, and each file gets a receipt. |
model (optional) | The model's name, e.g. FLUX.1 schnell. |
4. Check what it built
- The key appears only in server code: search the project for
KENNMARQ_API_KEY, and look for it in nothing a browser loads. - Every place that makes an image, a video or a song calls the API before storing or showing the file.
- When marking fails, the request fails too: no unmarked file is shown or saved.
- Files over 4 MB and videos go through an upload, and videos wait for their job (GET /v1/marks/{id}).
- A marked image dropped on the checker shows your provider, your AI system and when it was made.
For the code an agent might write, see the Next.js and Vercel AI SDK guides.