Skip to main content

dotmaster

Interactive dotfile generator and project configuration manager.

Answer a few questions, get a fully configured project — .gitignore, linting, formatting, testing, Docker, CI, and more, all in one place.


Installation

# Recommended: install as a global tool via pipx
pipx install dotmaster

# Or install into your current environment
pip install dotmaster

Quick Start

# Navigate to your project directory
cd my-new-project

# Run the guided wizard
dotmaster init

The wizard will ask you about your stack, and then generate all relevant dotfiles.


Commands

Command Description
dotmaster init Run the wizard and generate all dotfiles
dotmaster sync Regenerate files from an existing dotmaster.yaml
dotmaster add <plugin> Add or regenerate one plugin's files
dotmaster list Show all available plugins
dotmaster profile [name] Inspect or apply a preset profile
dotmaster validate Check dotmaster.yaml for inconsistencies

Preset Profiles

Skip the wizard entirely with --preset:

dotmaster init --preset web_app      # React/Next.js + ESLint + Prettier + Docker + CI
dotmaster init --preset backend_api  # Python + FastAPI + Ruff + Docker + CI
dotmaster init --preset library      # ESLint + Jest, no Docker
dotmaster init --preset monorepo     # pnpm + ESLint + CI

Generated Files

Depending on your answers, dotmaster can generate:

File Plugin
.gitignore gitignore (via gitignore.io API or template)
.eslintrc.json + .eslintignore eslint
.prettierrc + .prettierignore prettier
.editorconfig editorconfig
Dockerfile + .dockerignore docker
.github/workflows/ci.yml github_actions
.gitlab-ci.yml gitlab_ci
pyproject.toml pyproject
.env.example dotenv
ruff.toml ruff

dotmaster.yaml

All answers are persisted in dotmaster.yaml at the root of your project:

version: "1"
project:
  name: my-app
  description: A web application
  author: Jane Doe
stack:
  languages: [javascript, typescript]
  framework: nextjs
  package_manager: pnpm
quality:
  linter: eslint
  formatter: prettier
  testing: jest
infrastructure:
  docker: true
  docker_multistage: true
  ci: github_actions
  env_file: true
  editorconfig: true
profile: web_app

Edit it directly, then run dotmaster sync to re-generate.


Plugin System

Each tool is implemented as a plugin with two strategies:

  1. Delegate — hand off to the official CLI tool if available (e.g. gitignore.io API for .gitignore)
  2. Generate — fall back to a high-quality Jinja2 template

You can add custom plugins by subclassing dotmaster.plugins.base.BasePlugin.


Development

git clone https://github.com/your-org/dotmaster
cd dotmaster
pip install -e ".[dev]"
pytest

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

dotmaster-0.2.2.tar.gz (39.4 kB view details)

Uploaded Source

Built Distribution

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

dotmaster-0.2.2-py3-none-any.whl (51.2 kB view details)

Uploaded Python 3

File details

Details for the file dotmaster-0.2.2.tar.gz.

File metadata

  • Download URL: dotmaster-0.2.2.tar.gz
  • Upload date:
  • Size: 39.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dotmaster-0.2.2.tar.gz
Algorithm Hash digest
SHA256 d62ea6d6314f6b862ad108bde3471c4dd4c24a64213cbeaad61092cca622e5bf
MD5 33af1743ea64cb880f1baaa1dff2bbbc
BLAKE2b-256 3710569875ff4d3889ce55962ca88b095ad9d3c7abc2d87703568783277d5199

See more details on using hashes here.

Provenance

The following attestation bundles were made for dotmaster-0.2.2.tar.gz:

Publisher: release.yml on ahron-maslin/dotmaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file dotmaster-0.2.2-py3-none-any.whl.

File metadata

  • Download URL: dotmaster-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 51.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dotmaster-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b8bbeaa31b9f4cb6a035eb62ad96ce9739f8963a148aec6f81895f936ef5524d
MD5 199ca6b12c6ce87aad36708abf51396c
BLAKE2b-256 aa39e0884d4606572e3edb17ba267d6adb2ef320766c22d192149c134c55a727

See more details on using hashes here.

Provenance

The following attestation bundles were made for dotmaster-0.2.2-py3-none-any.whl:

Publisher: release.yml on ahron-maslin/dotmaster

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.3.0

2 files

This release

0.2.2 This release

2 files

0.2.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