Skip to main content

CLI for bootstrapping Python data projects with UV, mise, and papermill

Project description

aftr

    ___    ________________
   /   |  / ____/_  __/ __ \
  / /| | / /_    / / / /_/ /
 / ___ |/ __/   / / / _, _/
/_/  |_/_/     /_/ /_/ |_|

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

✨ Features

  • 🚀 Fast Setup: Initialize production-ready data projects in seconds
  • 🔧 Environment Configuration: Interactive setup for AI coding assistants (Claude Code, Codex, Gemini)
  • 🔑 SSH Key Management: Generate and configure GitHub SSH keys
  • 📊 Data Science Ready: Pre-configured with pandas, polars, Jupyter, and papermill
  • 🎯 Opinionated Structure: Clean project layout with data/, notebooks/, src/, and outputs/
  • 🔄 Reproducible Environments: mise.toml ensures consistent tool versions across machines

Installation

# Install globally with UV
uv tool install aftr

# Or run directly with uvx
uvx aftr init my-project

Usage

Interactive Mode

Simply run aftr to access the interactive menu:

aftr

Choose from:

  • New Project - Create a scaffolded data science project
  • Environment Setup - Configure AI CLI tools and SSH keys
  • Help - View usage information

Create a New Project

# Interactive prompt for project name
aftr

# Direct project creation
aftr init my-data-project

# Create in current directory
aftr init my-data-project --path .

Generated project structure:

my-data-project/
├── pyproject.toml          # UV project config with pandas, polars, jupyter, papermill
├── .mise.toml              # Tool versions (Python, UV)
├── notebooks/
│   └── 01_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)

Environment Setup

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:

  • AI CLI Selection: Install coding assistants via bun (Claude Code, Codex, Gemini)
  • SSH Key Generation: Create ed25519 keys for GitHub authentication
  • Key Display: View and copy existing SSH keys for GitHub setup

Perfect for running after environment bootstrap scripts to complete your dev setup!

Why aftr?

Modern data science projects need more than just a requirements.txt. aftr provides:

  1. UV Package Management: 10-100x faster than pip, with built-in virtual environment handling
  2. mise Tool Versioning: Pin Python and UV versions in .mise.toml for team consistency
  3. Papermill Integration: Notebooks with parameter tags for automated execution
  4. AI-Ready Environment: One command to install coding assistants like Claude Code
  5. Clean Conventions: Opinionated structure that just works™

Development

cd packages/cli
uv sync
uv run pytest tests/ -v
uv run aftr --help

License

MIT

Links

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

aftr-0.2.2.tar.gz (15.9 kB view details)

Uploaded Source

Built Distribution

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

aftr-0.2.2-py3-none-any.whl (9.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: aftr-0.2.2.tar.gz
  • Upload date:
  • Size: 15.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aftr-0.2.2.tar.gz
Algorithm Hash digest
SHA256 8bddb384ca6e26b1885e0354f71be895f0d7e887bf8fe61e59bc369794e405f2
MD5 ea2f47705122bd2bbb8909e31ace0f40
BLAKE2b-256 eec1d618b6a98780a3b867c60eecea1876928ec5ae349189559831b03650f9b7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: aftr-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 9.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.21 {"installer":{"name":"uv","version":"0.9.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

File hashes

Hashes for aftr-0.2.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d6a645cd5a89a4e824f119e5b34aede7fafedbbe440d2b4515e83320231c73a5
MD5 ff249a59ec62da86bbf0a67c12154e3b
BLAKE2b-256 ce4a94af736d0cbe240e09d400d2eaaaa98159f8e77ff61c4b138a36055b5dca

See more details on using hashes here.

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