Skip to content
/ uplan Public

๐Ÿ“‹uPlan - AI-powered development planning automation tool that generates structured project documents and to-do lists. Streamlines your planning workflow with template-based questions, Supports multiple AI models and offers customizable templates for development planning.

License

Notifications You must be signed in to change notification settings

EasyDevv/uplan

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

๐Ÿ“‹uPlan

uPlan is a Python package that utilizes AI to generate structured development plans and to-do lists.

PyPI version Python Versions

๐Ÿ“– Introduction

uPlan automates the development planning process to generate consistent and structured project documentation.

uplan_usage

Problems with existing AI chat-based planning:

  • Questions and methods vary with each session
  • Performance degradation due to increased context as conversations accumulate
  • Lack of repeatable workflow

uPlan's Solution:

  • Template-based structured questions
  • Efficient resource usage by calling AI only when necessary
  • Compatibility ensured through structured TOML format output

โœจ Key Features

  • ๐ŸŽฏ Automatic development plan generation using AI
  • โœ… Detailed to-do list creation based on plans
  • ๐Ÿ“ Structured output in TOML format
  • ๐Ÿ”„ Interactive template customization
  • ๐Ÿ› ๏ธ Support for various AI models (OpenAI, Anthropic, Gemini, Deepseek, Ollama, etc.)

๐Ÿ”„ How It Works

uPlan operates through the following workflow:

uplan Workflow

  1. Structured Question Generation (Code): Creates questions based on user-provided templates
  2. Question Response (User): Provides answers to structured questions
  3. Plan Generation (AI): Creates development plans based on user responses
  4. Plan Verification (User): Reviews and approves the generated plan
  5. To-Do List Generation (AI): Creates detailed to-do lists based on the approved plan
  6. Final Verification (User): Final review and approval of the to-do list

This process yields optimal development plans through efficient interaction between code (automation), user (decision-making), and AI (generation).

๐Ÿš€ Quick Start

Installation

pip install uplan

Run with Default Settings

uplan

The default model is ollama/qwq.

Specify a Particular Model

uplan --model gemini/gemini-2.0-flash-thinking-exp

Add the GEMINI_API_KEY key-value pair to your .env file. You can get a free key here.

๐Ÿค– Supported Models

For more details, refer to MODELS.md.

๐Ÿ“‹ Detailed Usage

uPlan supports the following command structure:

uplan [global options] [command] [command options]

Global Options

Option Description Default
--model LLM model to use "ollama/qwq"
--retry Maximum retry count for LLM requests 5
--category Template type "dev"
--input Input template folder path "./input"
--output Output file save folder "./output"
--debug Enable debug mode false

Output Files

The following files are generated as a result of execution:

  • plan.toml: Development plan document
  • todo.toml: To-do list
  • todo.md: To-do list in markdown format
  • todo.json: To-do list in checklist format (including completion status)

Commands

Basic Execution (Plan Creation)

Running without a command operates in plan generation mode:

uplan [global options]

Examples:

# Run with default model and dev category
uplan

# Specify model and category
uplan --model "ollama/qwq" --category "custom"

# Change input/output paths
uplan --input "./my-templates" --output "./my-plans"

Note: If templates don't exist in the specified --input/[category] path, they will be automatically initialized.

init - Template Initialization

Creates template files:

uplan init [template] [--force]

Options:

  • template: Template name to initialize (default: "dev")
  • --force: Force overwrite of existing files

Examples:

# Initialize default dev template
uplan init

# Initialize custom template
uplan init dev_en

# Force overwrite existing template
uplan init dev --force

๐Ÿ› ๏ธ Template Customization

plan.toml

A template that includes prompts and Q&A structure for basic planning.

[prompt]
role = "You are a good code architect and have a good understanding of the development process."
goal = "Create a plan for development."
preferred_language = "English"
instructions = [
    "Review what's already entered in <template>.",
    "<select> can contain multiple contents.",
    "Fill in the <select> parts to create the final deliverable."
]
output_structure = [
    "Write it in JSON format inside a ```json ``` codeblock.",
    "Key values use lowercase"
]

Template Question Structure:

[template.project_basics.overview]
ask = "Please describe the overview of the project"
description = "What you are making (app, service, etc.), target platform (web, mobile, desktop, etc.), main users, etc."
required = true
Property Description
ask Basic question
description Additional explanation (AI auto-generates if answer not provided)
required Whether to present the question (default: false)

todo.toml

A template for generating detailed to-do lists based on the plan.

[template.frontend]
framework = ["<select> (e.g., react, vue, angular)"]
tasks = [
    "<select> (e.g., design login page UI, design sign up page UI, implement user input validation logic)",
]
Property Description
frameworks AI specifies based on the content of output/dev/plan.toml
tasks AI generates specific to-do list based on the content of output/dev/plan.toml

๐Ÿ‘จโ€๐Ÿ’ป Contributing

Issues and pull requests are welcome!

๐Ÿ“„ License

See the LICENSE file for more details.


Made with โค๏ธ by EasyDev

About

๐Ÿ“‹uPlan - AI-powered development planning automation tool that generates structured project documents and to-do lists. Streamlines your planning workflow with template-based questions, Supports multiple AI models and offers customizable templates for development planning.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages