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:
- Delegate — hand off to the official CLI tool if available (e.g. gitignore.io API for
.gitignore) - 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
Release history Release notifications | RSS feed
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 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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
905624741d4d1a88adcbd719be5495d44c5d81e1355603b8a4961146773607cd
|
|
| MD5 |
d3e95dde1b3a7be9cea76f715cb26f96
|
|
| BLAKE2b-256 |
8d998e2aadf4b7114bbfc37a343542ffa1af30d3277ac18e48343ee01103d103
|
Provenance
The following attestation bundles were made for dotmaster-0.1.0.tar.gz:
Publisher:
release.yml on ahron-maslin/dotmaster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dotmaster-0.1.0.tar.gz -
Subject digest:
905624741d4d1a88adcbd719be5495d44c5d81e1355603b8a4961146773607cd - Sigstore transparency entry: 1310942898
- Sigstore integration time:
-
Permalink:
ahron-maslin/dotmaster@ff4e8c82b0b25a1dcb4d76385d2868267702d419 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ahron-maslin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ff4e8c82b0b25a1dcb4d76385d2868267702d419 -
Trigger Event:
push
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4604d21e916fe3504928a17d1d36cfd73d6daab560e2de154c24083107ab18e8
|
|
| MD5 |
00667d33ccd65ade707ef6c319c26226
|
|
| BLAKE2b-256 |
9743a3146c7cbeacd26dbab77ee2712296f20caa8ec1208e0ed8fec43d66034d
|
Provenance
The following attestation bundles were made for dotmaster-0.1.0-py3-none-any.whl:
Publisher:
release.yml on ahron-maslin/dotmaster
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
dotmaster-0.1.0-py3-none-any.whl -
Subject digest:
4604d21e916fe3504928a17d1d36cfd73d6daab560e2de154c24083107ab18e8 - Sigstore transparency entry: 1310943361
- Sigstore integration time:
-
Permalink:
ahron-maslin/dotmaster@ff4e8c82b0b25a1dcb4d76385d2868267702d419 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ahron-maslin
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ff4e8c82b0b25a1dcb4d76385d2868267702d419 -
Trigger Event:
push
-
Statement type: