This directory is the neutral, repo-owned source of truth for agent behavior in Langfuse Python.
Use .agents/ for configuration and guidance that should apply across tools.
Do not put durable shared guidance only in .claude/, .codex/, .cursor/,
or .vscode/.
AGENTS.md: canonical shared root instructionsconfig.json: shared bootstrap and MCP configuration used to generate tool-specific shimsscripts/: shared bootstrap and sync helpers for agent toolingskills/: shared, tool-neutral implementation guidance for recurring workflows
.agents/config.json contains five kinds of data:
shared: defaults used across toolsmcpServers: project MCP servers and how to connect to themclaude: Claude-specific generated settings inputscodex: Codex-specific generated settings inputscursor: Cursor-specific generated settings inputs
Current shape:
{
"shared": {
"setupScript": "bash .agents/scripts/codex/setup.sh",
"devCommand": "poetry run bash",
"devTerminalDescription": "Interactive development shell inside the Poetry environment"
},
"mcpServers": {
"langfuse-docs": {
"transport": "http",
"url": "https://langfuse.com/api/mcp"
}
},
"claude": {
"settings": {}
},
"codex": {
"environment": {
"version": 1,
"name": "langfuse-python"
}
},
"cursor": {
"environment": {
"agentCanUpdateSnapshot": false
}
}
}.agents/scripts/sync-agent-shims.py reads .agents/config.json and writes the
tool discovery files that those products require.
Generated local artifacts:
.claude/settings.json.claude/skills/*.cursor/environment.json.cursor/mcp.json.vscode/mcp.json.mcp.json.codex/config.toml.codex/environments/environment.toml
The repo root discovery files remain committed as symlinks:
AGENTS.md->.agents/AGENTS.mdCLAUDE.md->AGENTS.md
This keeps provider discovery stable while .agents/ remains the source of
truth.
Edit .agents/config.json when you need to:
- add, remove, or update a shared MCP server
- change the shared setup/bootstrap command
- change the default terminal command or terminal label used by generated shims
- adjust generated Claude, Cursor, or Codex settings that are intentionally modeled in the shared config
Do not edit generated shim files by hand. Edit the canonical files in
.agents/ instead.
After editing .agents/config.json or .agents/skills/**:
- Run
python3 scripts/agents/sync-agent-shims.py - Run
python3 .agents/scripts/sync-agent-shims.py --check - Verify you did not stage generated files under
.claude/skills/or any of the generated MCP/runtime config paths - Update
.agents/AGENTS.mdorCONTRIBUTING.mdif the shared workflow materially changed
bash .agents/scripts/install.sh --all-extras is the canonical repo install
flow and wires poetry install to bash .agents/scripts/postinstall.sh.
bash .agents/scripts/codex/setup.sh uses the same path during agent
environment bootstrap.
Shared skills live under .agents/skills/.
Use them for durable, reusable guidance such as:
- repeated SDK maintenance workflows
- review checklists that should apply across tools
- repo-specific runbooks that should not live only in a provider-specific folder
Do not use skills for one-off notes or tool runtime configuration.
python3 .agents/scripts/sync-agent-shims.py projects shared skills into
.claude/skills/ so Claude can discover the same repo-owned skills.
For the skill authoring workflow, see skills/README.md.