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.1.0.tar.gz (34.1 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.1.0-py3-none-any.whl (47.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for dotmaster-0.1.0.tar.gz
Algorithm Hash digest
SHA256 905624741d4d1a88adcbd719be5495d44c5d81e1355603b8a4961146773607cd
MD5 d3e95dde1b3a7be9cea76f715cb26f96
BLAKE2b-256 8d998e2aadf4b7114bbfc37a343542ffa1af30d3277ac18e48343ee01103d103

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: dotmaster-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 47.7 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 4604d21e916fe3504928a17d1d36cfd73d6daab560e2de154c24083107ab18e8
MD5 00667d33ccd65ade707ef6c319c26226
BLAKE2b-256 9743a3146c7cbeacd26dbab77ee2712296f20caa8ec1208e0ed8fec43d66034d

See more details on using hashes here.

Provenance

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