llm-project-generator
llm-project-generator creates a ready-to-run LLM chatbot project from a reviewed, packaged template.
Current status
V1 supports only Groq. Groq is included because this template has been live verified. Other providers are not advertised or generated yet.
Requirements
- Python 3.13 or newer
- uv
The generator itself has no runtime dependencies. It uses the standard Python library and includes its template assets in the installed package.
Quick start
PyPI with uvx
After the package is published on PyPI, run it without permanently installing it:
uvx llm-project-generator init my-chatbot --provider groq
Persistent installation
After PyPI publication, install the command for repeated use:
uv tool install llm-project-generator
llm-project-generator init my-chatbot --provider groq
Tagged GitHub release
The currently valid tagged fallback is:
uvx --from git+https://github.com/Talhaahmad9/llm-project-generator.git@v0.1.0 llm-project-generator init my-chatbot --provider groq
This is longer because uv must be told both the Git source and the executable name. v0.1.0 contains the same Groq generator functionality, while v0.1.1 prepares the package metadata for PyPI.
Development from a clone
From the repository root:
uv sync --dev
uv run llm-project-generator --help
uv run llm-project-generator init my-chatbot --provider groq
What it creates
The command creates a new destination containing the reviewed Groq chatbot:
.env.example
.gitignore
LICENSE
README.md
pyproject.toml
src/app/
tests/
The generated project keeps the app Python package, deterministic fake-model tests, the llm-chat console entry point, and the default model groq:openai/gpt-oss-120b.
Run a generated chatbot
Enter the generated project and install its dependencies:
cd <destination>
uv sync
cp .env.example .env
Edit .env and add your own GROQ_API_KEY. LLM_MODEL is optional and can override the default model. Then start the chatbot:
uv run llm-chat
.env.example is generated as a placeholder. .env is excluded by the template's .gitignore and is never generated or copied by this project. Never put a real key in source control.
Project names and destinations
The distribution name comes from the destination directory name. Names may contain ASCII letters, numbers, periods, underscores, and hyphens; they must begin and end with a letter or number. Spaces and invalid boundary characters are rejected. Period, underscore, and hyphen runs are normalized to one lowercase hyphen: My_Project becomes my-project.
The destination's parent directory must already exist. The destination itself must not exist, even if it is empty. Existing files and directories are never overwritten, and V1 has no force or delete behavior. An operating-system write failure may leave partial output in the destination.
Development and testing
Install development dependencies and run the root test suite with:
uv sync --dev
uv run pytest
The root tests exercise provider resolution, resource loading, generation, and CLI behavior. The chatbot tests are packaged template assets; they are not collected from their packaged location by the generator's root test suite.
Layout
src/llm_project_generator/ generator package
src/llm_project_generator/project_templates/ packaged template assets
tests/ generator tests
Security
The generator does not request, create, inspect, or copy API keys. It creates only .env.example; users supply their own secret in a local .env, which is excluded from version control.
The generator and generated application use deterministic validation, configuration, file selection, and error handling. LLM responses are probabilistic output from the selected provider and should not be treated as deterministic application logic or as a security boundary.
Limitations
V1 generates only the live-verified Groq chatbot. It does not generate other providers, overwrite existing destinations, delete output, run uv sync for the user, or execute the generated chatbot's tests.
License
This project and its generated projects are licensed under the MIT License. Copyright (c) 2026 Talha Ahmad.
Further reading
Metadata
Release files for llm-project-generator 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| llm_project_generator-0.1.1.tar.gz | 12.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llm_project_generator-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 35.7 kB
Release files / llm_project_generator-0.1.1.tar.gz
| Download URL | llm_project_generator-0.1.1.tar.gz |
|---|---|
| Size | 12.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
49bbce9f89b45b0a4ee09a175e21774d9f533a510277eaab9ce778674c39d472
|
|
BLAKE2b-256 checksum How to use checksums |
351a35f1b991a2ab86620da15a9fa47cdbd318b8a4bd076989a238ed0664d7e8
|
| 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 15, 2026.
Transparency logRelease files / llm_project_generator-0.1.1-py3-none-any.whl
| Download URL | llm_project_generator-0.1.1-py3-none-any.whl |
|---|---|
| Size | 23.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8dd54b874f6ad0680dcf067d23b953f9de8bd49e0da27b9443bca031985139d3
|
|
BLAKE2b-256 checksum How to use checksums |
5f78432992dcf0d18b17ab05c09f5eebaf1de8a13823d4c2652d4b4f7810514a
|
| 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 15, 2026.
Transparency log