Contents
Overview
robotter composes GenAI "dotfiles" (the instruction/configuration files read by AI coding agents) from a single source template.
Different agents read their configuration from different locations under different filenames. robotter renders one Jinja2 template and writes the result to the appropriate location(s) for a target agent, at either global (user-level) or project scope:
| Agent | Value | Project Configuration | Global Configuration |
|---|---|---|---|
| Claude Code | claude-code |
CLAUDE.md |
~/.claude/CLAUDE.md |
| GitHub Copilot | github-copilot |
.github/copilot-instructions.md |
<VS Code user>/prompts |
| OpenAI Codex | openai-codex |
AGENTS.md |
~/.codex/AGENTS.md |
| OpenCode | opencode |
AGENTS.md |
~/.config/opencode/AGENTS.md |
Templates may include optional YAML frontmatter (preserved in the rendered output) and may compose other templates via the include_configuration("<relative path>") function, letting you maintain shared content once and assemble agent-specific files from it.
How to use robotter
Render a template to an agent's configuration location(s):
uvx robotter render <template> <agent> [<dir>] [--verbose] [--debug]
| Argument / Option | Description |
|---|---|
<template> |
Path to the template file to render. |
<agent> |
Target agent: claude-code, github-copilot, openai-codex, or opencode. |
<dir> |
Render project-level configuration under this directory. When omitted, global (user-level) configuration is rendered. |
--verbose |
Write verbose information to the terminal. |
--debug |
Write debug information to the terminal. |
Examples
Render instructions.md to the current user's global Claude Code configuration:
uvx robotter render instructions.md claude-code
Render instructions.md to the project-level OpenCode configuration under ./my-project:
uvx robotter render instructions.md opencode ./my-project
Editing an agent's configuration
Open an agent's rendered configuration file in an editor:
uvx robotter edit <agent> [<dir>] [--verbose] [--debug]
| Argument / Option | Description |
|---|---|
<agent> |
Target agent: claude-code, github-copilot, openai-codex, or opencode. |
<dir> |
Edit project-level configuration under this directory. When omitted, global (user-level) configuration is edited. |
--verbose |
Write verbose information to the terminal. |
--debug |
Write debug information to the terminal. |
The configuration file must already exist (for example, produced by a prior render); edit fails if it does not. The editor is selected from the VISUAL or EDITOR environment variable when set, otherwise the operating system's default handler for the file is used.
Examples
Edit the current user's global Claude Code configuration:
uvx robotter edit claude-code
Edit the project-level OpenCode configuration under ./my-project:
uvx robotter edit opencode ./my-project
Example Configuration
A configuration file is a Jinja2 template with optional YAML frontmatter. Use the include_configuration("<relative path>") function to compose shared content from another configuration file, letting you maintain that content once and reuse it across multiple templates.
The following instructions.md template includes a shared shared/coding-standards.md file:
---
description: Instructions for AI coding agents
---
# Project Instructions
## Overview
This project composes GenAI dotfiles from a single source template.
## Coding Standards
{{ include_configuration("shared/coding-standards.md") }}
The included shared/coding-standards.md file (its frontmatter, if any, is ignored when included):
- Prefer clarity over cleverness.
- Write tests for all new functionality.
- Document public interfaces.
The path passed to include_configuration is resolved relative to the file that contains the call, so a template in one directory can include a file located in a subdirectory ("shared/coding-standards.md") or a parent directory ("../coding-standards.md"). Included files may themselves call include_configuration, allowing configuration to be composed from arbitrarily nested fragments.
Rendering the instructions.md template above produces the following output (the frontmatter is preserved; the include_configuration call is replaced with the rendered content of the included file):
---
description: Instructions for AI coding agents
---
# Project Instructions
## Overview
This project composes GenAI dotfiles from a single source template.
## Coding Standards
- Prefer clarity over cleverness.
- Write tests for all new functionality.
- Document public interfaces.
Installation
Note that it isn't necessary to install robotter when running via uvx.
| Installation Method | Command |
|---|---|
| Via uv | uv add robotter |
| Via pip | pip install robotter |
Verifying Signed Artifacts
Artifacts are signed and verified using py-minisign and the public key in the file ./minisign_key.pub.
To verify that an artifact is valid, visit the latest release and download the .minisign signature file that corresponds to the artifact, then run the following command, replacing <filename> with the name of the artifact to be verified:
uv run --with py-minisign python -c "import minisign; minisign.PublicKey.from_file('minisign_key.pub').verify_file('<filename>'); print('The file has been verified.')"
Development
Please visit Contributing and Development for information on contributing to this project.
Additional Information
Additional information can be found at these locations.
| Title | Document | Description |
|---|---|---|
| Code of Conduct | CODE_OF_CONDUCT.md | Information about the norms, rules, and responsibilities we adhere to when participating in this open source community. |
| Contributing | CONTRIBUTING.md | Information about contributing to this project. |
| Development | DEVELOPMENT.md | Information about development activities involved in making changes to this project. |
| Governance | GOVERNANCE.md | Information about how this project is governed. |
| Maintainers | MAINTAINERS.md | Information about individuals who maintain this project. |
| Security | SECURITY.md | Information about how to privately report security issues associated with this project. |
License
robotter is licensed under the MIT license.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file robotter-0.7.0.tar.gz.
File metadata
- Download URL: robotter-0.7.0.tar.gz
- Upload date:
- Size: 9.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
80a4c4be7315b379cacabd25e5399efdf64d8d7bc000301dee0b12a57171455a
|
|
| MD5 |
ceca5db8246a6b6971749064f23db613
|
|
| BLAKE2b-256 |
185a9415973d3724b4ad87344dac2bb66bf0bb34df224332acacedec6d6816d1
|
File details
Details for the file robotter-0.7.0-py3-none-any.whl.
File metadata
- Download URL: robotter-0.7.0-py3-none-any.whl
- Upload date:
- Size: 12.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.12.0 {"installer":{"name":"uv","version":"0.12.0","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
33f30af0b581cb360a93aa80b840d07239862697798235e04a8ec21b1cdb5908
|
|
| MD5 |
c02afc8452493f793b2ad337303fe0a8
|
|
| BLAKE2b-256 |
8e4fd58c010877d2bfbd46e92e4c441c2c6b605e1f7c7ac5e9d172c3221976e3
|