Skip to main content

Project: License

Package: PyPI - Python Version PyPI - Version PyPI - Downloads

Development: uv ruff ty pytest CI Code Coverage GitHub commit activity

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

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

robotter-0.6.3.tar.gz (8.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

robotter-0.6.3-py3-none-any.whl (11.7 kB view details)

Uploaded Python 3

File details

Details for the file robotter-0.6.3.tar.gz.

File metadata

  • Download URL: robotter-0.6.3.tar.gz
  • Upload date:
  • Size: 8.7 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

Hashes for robotter-0.6.3.tar.gz
Algorithm Hash digest
SHA256 7c3604ea03bc719bb6f2e00f268c06761399337e0a92376e686f098ae183cc7b
MD5 827b2a12262925040833bdf20ac965d9
BLAKE2b-256 f31f2135e906fa3f8aee1c66b3955554f0fafc91249f0ad4637f4477822e51df

See more details on using hashes here.

File details

Details for the file robotter-0.6.3-py3-none-any.whl.

File metadata

  • Download URL: robotter-0.6.3-py3-none-any.whl
  • Upload date:
  • Size: 11.7 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

Hashes for robotter-0.6.3-py3-none-any.whl
Algorithm Hash digest
SHA256 50f2a0e741ed251f01f349c8ceb0f05fcfb9df7bf675962e179a22cc1d9a48f1
MD5 8f4cfdbb72d468b2a1182a2bea7f6e94
BLAKE2b-256 07111cb6aaca47f7579e08c1241e4e7589876ebd1995be32c8e88fbfba4f9ffc

See more details on using hashes here.

Release history Release notifications | RSS feed

0.17.3

2 files

0.17.2

2 files

0.17.1

2 files

0.10.0

2 files

0.9.0

2 files

0.8.0

2 files

0.7.0

2 files

This release

0.6.3 This release

2 files

0.6.0

2 files

0.5.2

2 files

0.5.1

2 files

0.5.0

2 files

0.4.0

2 files

0.3.0

2 files

0.2.0

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page