Submit
Submit a tool
Add a tool or category to the content repo by opening a pull request.
Agent Shortcut
Get your agent to do it
Point it to agentfirst.directory/SKILL.md - it tells your agent which repo to edit and how to format the files.
Repo workflow
Open a PR
Make listing changes in bradvin/agentfirst.directory . Only edit bradvin/agentfirst.directory-site for site changes.
- Pick the closest existing category in
categories/. - Add a tool file in
tools/. - Add a short factual body, ideally with a
## So agents can...section. - Add a category file only if the current list clearly does not fit.
- Open a PR against
main.
PR checklist
tools/. githubUrl when the tool is open source. Local workflow
git clone https://github.com/bradvin/agentfirst.directory.git
cd agentfirst.directory
# add or update content
$EDITOR tools/coolapi.md
$EDITOR categories/agent-security.json
git checkout -b add-coolapi
git add .
git commit -m "Add CoolAPI"
git push origin add-coolapi Repo paths
tools/<slug>.mdOne file per tool.categories/<slug>.jsonOne file per category.bradvin/agentfirst.directoryThe content repo.mainOpen the PR against the default branch.Tool entry
Add a tool markdown file
Each tool is one markdown file with frontmatter and a short body.
Tool entry
---
slug: "coolapi"
name: "CoolAPI"
description: "An agent-first API for doing cool things"
category: "agent-security"
tags:
- "mcp"
- "security"
- "api"
websiteUrl: "https://coolapi.dev"
githubUrl: "https://github.com/cooldev/coolapi"
logoUrl: "https://www.google.com/s2/favicons?sz=64&domain_url=https://coolapi.dev"
ogImageUrl: "https://coolapi.dev/og-image.png"
pricing: "freemium"
---
Short summary of what the tool does.
## So agents can...
- do outcome one
- do outcome two
- do outcome three Required frontmatter
slugLowercase kebab-case.namePublic tool name.descriptionShort summary.categoryExisting category slug.tagsAt least one tag.websiteUrlRequired URL.pricingOne of open-source, freemium, free, or paid.Optional frontmatter
githubUrlInclude it when the tool is open source.logoUrlAdd the canonical value if you already know it.ogImageUrlAdd the social preview image if you already know it.sortOrderOptional integer when ordering matters.Writing guidance
Keep the body factual and agent-specific
Short, concrete descriptions work best. Prefer canonical URLs, avoid duplicate listings, and add a brief agent-enablement section when it helps explain why the tool belongs in the directory.
Suggested section
## So agents can...
- do outcome one
- do outcome two
- do outcome three What happens after merge
PR authorAuthor attribution is derived automatically.logoUrlMissing values can default from the website favicon.ogImageUrlMissing values can be discovered from site metadata.Category proposals
Add a category only if needed
Add one only when no existing category fits.
Category JSON
{
"slug": "agent-security",
"label": "Agent Security",
"sortOrder": 110
} When a new category is justified
- No existing category fits.
- The label is short and clear.
- It could fit more than one tool.
- The same PR uses it on at least one tool.
- Create
categories/<slug>.json. - Use it in at least one tool in the same PR.
- Keep the slug lowercase and the label concise.
- Open the PR against
main.