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):
robotter <template> <agent> [--output-dir <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. |
--output-dir <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:
robotter instructions.md claude-code
Render instructions.md to the project-level OpenCode configuration under ./my-project:
robotter instructions.md opencode --output-dir ./my-project
Installation
| 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.6.0.tar.gz.
File metadata
- Download URL: robotter-0.6.0.tar.gz
- Upload date:
- Size: 7.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","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 |
4d5ec0627c14c3ee2caf0740b62c3a3eeb192d98b72236b8027e92a32f234e09
|
|
| MD5 |
cf8542aca612c1130f9f24167b800738
|
|
| BLAKE2b-256 |
7377ffd2cfcad4b7b6050ed368eb57b7c5cb249b14d6b759eb065d23ef82b2b5
|
File details
Details for the file robotter-0.6.0-py3-none-any.whl.
File metadata
- Download URL: robotter-0.6.0-py3-none-any.whl
- Upload date:
- Size: 11.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
uv/0.11.32 {"installer":{"name":"uv","version":"0.11.32","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 |
db973dcf59b25293f6ed0d30630b923d0b02ea061e921c006bc9c073a4998041
|
|
| MD5 |
ee39a1bd50bf483ca4e92e5940a8916f
|
|
| BLAKE2b-256 |
c779d28161f8d2131f3a0191945a7f0584fb809527130a3518796b0ef1472dc5
|