Skip to main content

Interactive dotfile generator and manager for any project

Project description

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

Project details


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.1.tar.gz (37.5 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.1-py3-none-any.whl (50.8 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: dotmaster-0.2.1.tar.gz
  • Upload date:
  • Size: 37.5 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.1.tar.gz
Algorithm Hash digest
SHA256 1aa0f299773957cf931c3742613b402f66b26a348e3fb958c898f9f2a2bda1fd
MD5 a3576ce61ed06729425b20942bb98551
BLAKE2b-256 60075cd3080748b1de0ccaeca6ff769137a3e83699bdb7f2cc4d78f1c48185c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for dotmaster-0.2.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: dotmaster-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 50.8 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 bcf5bbcea108d3f8a5e2cf840dc532aa785bb91fe44a7033e13f404c82289e48
MD5 933d4172aa85d1b75fa654f10a31f3a8
BLAKE2b-256 d57e88b203e3cf0476950fbc9de99ad74eafc195136a91a9b05d09de6dfe790c

See more details on using hashes here.

Provenance

The following attestation bundles were made for dotmaster-0.2.1-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.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page