Skip to main content

⚡ LLM Project Generator

One command. Four provider templates. Tested chatbot foundations.

Python 3.13+ PyPI CI License: MIT Status: Alpha

Groq · Google Gemini · OpenAI · Anthropic Claude

Built by Talha Ahmad

Overview

llm-project-generator creates a focused, standalone terminal chatbot project from a packaged provider template. Each generated project combines one provider SDK, Pydantic AI, Pydantic Settings, validated schemas, provider-specific configuration, and deterministic tests around a shared application structure.

It generates one-provider projects; it does not perform runtime multi-provider routing.

Quick start

Requirements: Python 3.13 or newer and uv.

The shortest path opens an interactive provider menu in a terminal:

uvx llm-project-generator init my-chatbot

For automation, select a provider explicitly. Non-interactive environments require --provider:

uvx llm-project-generator init my-chatbot --provider groq
uvx llm-project-generator init my-chatbot --provider google
uvx llm-project-generator init my-chatbot --provider openai
uvx llm-project-generator init my-chatbot --provider anthropic

For a persistent installation:

uv tool install llm-project-generator
llm-project-generator init my-chatbot

Multi-provider generation is available in version 0.2.0 and later.

Providers

CLI name Display name Environment variable Default model Generated dependency Deterministic verification Live verification
groq Groq GROQ_API_KEY groq:openai/gpt-oss-120b pydantic-ai-slim[groq] Passed Passed
google Google Gemini GOOGLE_API_KEY google:gemini-3.5-flash-lite pydantic-ai-slim[google] Passed Pending billing/support
openai OpenAI OPENAI_API_KEY openai:gpt-5.4-mini pydantic-ai-slim[openai] Passed Pending billing
anthropic Anthropic Claude ANTHROPIC_API_KEY anthropic:claude-sonnet-5 pydantic-ai-slim[anthropic] Passed Pending billing

Deterministic verification covers generation, imports, configuration, mocked provider construction, and shared chatbot behavior. Live verification covers real authentication, model availability, and provider responses. Only Groq has completed both so far.

Use a generated project

cd my-chatbot
uv sync
cp .env.example .env

Open .env in an editor and add the required API key for the provider you selected. LLM_MODEL is an optional model override; when it is omitted, the selected provider's default model is used. The generator never requests or copies API keys. The generated .env does not exist until you create it and is ignored by Git.

Run the chatbot and its deterministic tests:

uv run llm-chat
uv run pytest

Features

  • Interactive or explicit provider selection.
  • Provider-isolated generated dependencies.
  • Pydantic validation for settings and chat messages.
  • Conversation history within a terminal session.
  • Deterministic fake-model and mocked provider tests.
  • Safe destination policy with no force, overwrite, or delete behavior.
  • Packaged templates available from the installed wheel.
  • No generator runtime dependencies.

Architecture

                         llm-project-generator
                                  |
                    +-------------+-------------+
                    |                           |
          Common chatbot resources      Provider overlay
                    |                           |
                    +-------------+-------------+
                                  |
                         Generated project
                                  |
                  config -> provider -> LLM API

Common resources own the terminal loop, chat orchestration, reply execution, schemas, exceptions, and shared tests. Each overlay owns its environment example, README, dependency metadata, provider configuration, provider construction, and provider tests.

Generated structure

my-chatbot/
|-- .env.example
|-- .gitignore
|-- LICENSE
|-- README.md
|-- pyproject.toml
|-- src/
|   `-- app/
|       |-- __init__.py
|       |-- chat.py
|       |-- client.py
|       |-- config.py
|       |-- exceptions.py
|       |-- main.py
|       |-- provider.py
|       `-- schemas.py
`-- tests/

Safety

The destination parent must already exist, and the destination itself must not exist. Existing files and directories are never overwritten; there is no force or delete behavior.

The generator never creates .env, requests API keys, or copies secrets. Generated configuration uses SecretStr. Model output is probabilistic and untrusted; it is not an authorization or security boundary.

Automated generated tests use fake models and mocks and do not make real provider requests.

Project names and destinations

Project names may contain ASCII letters, numbers, dots, underscores, and hyphens. They must begin and end with a letter or number. Runs of dots, underscores, and hyphens are normalized into lowercase hyphens for distribution metadata. The destination parent must exist, and the destination itself must not already exist. A filesystem failure during generation can leave a partial destination; inspect it or remove it before retrying.

Verification status

The four provider implementations have deterministic generated-suite coverage. Groq has also completed live verification. Google Gemini, OpenAI, and Anthropic Claude live checks remain pending billing/support availability, so this preview does not claim all providers are production-ready or live-verified.

Development

git clone https://github.com/Talhaahmad9/llm-project-generator.git
cd llm-project-generator
uv sync --dev
uv run pytest
uv build --no-sources

CI generates and tests all four provider projects without provider credentials.

Limitations and roadmap

This preview provides a terminal interface only, generates one provider per project, requires Python 3.13+, does not create API keys, does not overwrite existing destinations, and does not make live calls in automated tests. Three live-verification checks are pending.

The next milestones are to complete remaining live verification and prepare the criteria for 1.0.0. Future work such as FastAPI or RAG belongs to separate product milestones; it is not part of the generated chatbot today.

Contributing

Create a focused branch, run the root tests and build locally, and keep provider resources explicitly allowlisted. Pull requests should preserve deterministic tests and must not add credentials or live API calls.

Author and license

Built by Talha Ahmad. Licensed under the MIT License.

Metadata

Release files for llm-project-generator 0.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llm-project-generator 0.2.0
File Size Uploaded
llm_project_generator-0.2.0.tar.gz 18.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for llm-project-generator 0.2.0
File Interpreter ABI Platform
llm_project_generator-0.2.0-py3-none-any.whl Python 3 none any Details

Total release size: 62.4 kB

Release files / llm_project_generator-0.2.0.tar.gz

Download URL llm_project_generator-0.2.0.tar.gz
Size 18.6 kB
Tags Source
SHA-256 checksum
How to use checksums
61e1b2f8cdd2dc00c29302094cbf9e40cd5f9bc0ceac0c824a3f1530d41ceb36
BLAKE2b-256 checksum
How to use checksums
faee2d844921277baccb5be14e22c870696469885d1e065f80b8f3f3935cbf4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release files / llm_project_generator-0.2.0-py3-none-any.whl

Download URL llm_project_generator-0.2.0-py3-none-any.whl
Size 43.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6f19b624b5b819d4ad00e9c55a90521b2c095470ad2c6a6dfd0e660c306d950c
BLAKE2b-256 checksum
How to use checksums
01464ba6f336fd361e2c43c33f0c8b422a46e8cfe0253dcf91c44554389fb3d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.2.0 This release

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page