Observed since 20 Oct, 21:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
CLI for bootstrapping Python data projects with UV, mise, and papermill
___ ________________
/ | / ____/_ __/ __ \
/ /| | / /_ / / / /_/ /
/ ___ |/ __/ / / / _, _/
/_/ |_/_/ /_/ /_/ |_|
===============================
A I f o r T h e R e s t
===============================
aftr (AI for The Rest) is a CLI tool for bootstrapping Python data science projects with modern best practices. It combines UV for blazing-fast package management, mise for reproducible tool versions, and papermill for notebook automation.
# Install globally with UV
uv tool install aftr
# Or run directly with uvx
uvx aftr init my-project
Simply run aftr to access the interactive menu:
aftr
Choose from:
# Interactive prompt for project name
aftr
# Direct project creation
aftr init my-data-project
# Use a specific template
aftr init my-data-project --template acme
# Create in current directory
aftr init my-data-project --path .
Generated project structure:
my-data-project/
├── pyproject.toml # UV project config with DuckDB, Polars, Jupyter, papermill
├── .mise.toml # Tool versions (Python, UV)
├── .mcp.json # MCP server config (Playwright)
├── CLAUDE.md # AI assistant guidance
├── notebooks/
│ └── example.ipynb # Sample notebook with papermill parameter tags
├── src/
│ └── my_data_project/ # Python source code (hyphenated names → underscores)
├── data/ # Input data (gitignored)
└── outputs/ # Results and artifacts (gitignored)
Templates let you customize project scaffolding with different dependencies, files, and configurations. Perfect for team standards or internal packages.
# List available templates
aftr config list
# Show template details
aftr config show default
# Export default template as a starting point
aftr config export-default -o my-template.toml
# Register a template from a URL
aftr config add https://git.internal.com/templates/acme.toml
# Update a template from its source URL
aftr config update acme
# Remove a registered template
aftr config remove acme
Templates use TOML format with {{project_name}} and {{module_name}} placeholders:
[template]
name = "My Team Template"
description = "Internal data science template"
version = "1.0.0"
[project]
requires-python = ">=3.11"
[project.dependencies]
polars = ">=1.0.0"
internal-utils = ">=0.5.0" # Internal packages work too
[project.optional-dependencies]
dev = ["pytest>=8.0.0", "ruff>=0.1.0"]
[mise]
uv = "latest"
[directories]
include = ["config", "scripts"] # Extra directories beyond defaults
[notebook]
include_example = true
imports = ["duckdb", "polars as pl", "internal_utils"]
[files."CLAUDE.md"]
content = '''
# CLAUDE.md
Custom guidance for {{project_name}}...
'''
[files."config/settings.toml"]
content = '''
[database]
host = "internal.db.com"
'''
Templates are stored in platform-specific config directories:
~/.config/aftr/templates/%LOCALAPPDATA%\aftr\templates\Configure your development environment after installation:
# Interactive configuration
aftr setup
# Non-interactive mode (defaults: Claude Code only, skip SSH)
aftr setup --non-interactive
Setup mode features:
Perfect for running after environment bootstrap scripts to complete your dev setup!
Modern data science projects need more than just a requirements.txt. aftr provides:
.mise.toml for team consistencycd packages/cli
uv sync
uv run pytest tests/ -v
uv run aftr --help
MIT
Download counts and popularity will appear here as the collector receives them.
| Version | Published | Direct dependencies | Open version |
|---|---|---|---|
| 0.14.0 | 19 Feb 2026 | 8 |
This describes our collected data; it is not a security assessment.
Observed since 20 Oct, 21:15 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package:c5c263080d1c4f773ca369e5ea90b3042bafefe7b94fe86753ed98697bf9e244