Skip to main content

systemgen

CLI tool that builds reusable AI context from your stack and turns it into a single prompt you can send to an assistant.

Building with AI works better when the model knows your framework, database, folder layout, and conventions. Re-typing that context for every task wastes time and drifts from how your repo actually works. systemgen captures those choices once as a named profile, then merges them with whatever you want to build next. Profiles can live as TOML (terminal tools) or JSON (IDE assistants), or both.

Install

pip install systemgen

Quick start

systemgen init
# Answer prompts for stack, structure, and conventions; pick TOML, JSON, or both; name the profile.

systemgen gen --profile myapp
# Pick your profile if you omit --profile; choose how to supply the task prompt; then send the result where you need it.

Commands

Command What it does
systemgen init Create a new profile from the full question flow.
systemgen gen Build a prompt from a saved profile (--profile <name> optional).
systemgen update Show current profile values, then full re-run of all questions, field-by-field edits, or cancel (--profile <name> optional); same name on save.
systemgen profile list List saved profiles and optional follow-up actions.
systemgen profile delete Remove a profile (TOML, JSON, or both).
systemgen profile library Import from built-in templates or start from scratch.

Run systemgen with no subcommand to open the interactive menu when you have profiles.

Profile formats

Profiles are plain data. TOML suits terminal workflows (e.g. Claude Code, Ollama); JSON suits IDE tooling (e.g. Cursor, Windsurf). Example shape (FastAPI-style), shortened:

TOML (~/.systemgen/profiles/<name>.toml):

[project]
type = "Backend API"
framework = "FastAPI"
language = "python"
language_version = "3.11"

[database]
engine = "PostgreSQL"
orm = "sqlalchemy"
mode = "async"

[auth]
method = "JWT"

JSON (~/.systemgen/profiles/<name>.json):

{
  "project": {
    "type": "Backend API",
    "framework": "FastAPI",
    "language": "python",
    "language_version": "3.11"
  },
  "database": {
    "engine": "PostgreSQL",
    "orm": "sqlalchemy",
    "mode": "async"
  },
  "auth": {
    "method": "JWT"
  }
}

Prompt input options (gen)

After you pick a profile, you choose how to add the task:

Option When to use it
Type it now You know the request and want to enter it in the terminal.
Load from a text file The spec lives in a .txt or .md file (paths are re-checked until the file exists).
Skip — I'll write the prompt in my AI tool You only want the profile context; you will add the task inside the assistant.

If you skip the task text, the next step only offers copy, save to file, or exit (no pipe to Claude/Ollama).

Pipe to (gen)

When you supplied a task prompt, you can send the combined output to:

Destination What it does
Claude (terminal) Starts the Claude Code CLI with your prompt as the opening message so you can keep chatting.
Ollama Runs ollama run <model> with the full text as input (model list comes from ollama list when available).
Copy to clipboard Copies the full prompt for pasting anywhere.
Save to file Writes the prompt to a path you enter.

Profiles are saved to

~/.systemgen/profiles/

Languages and stacks

systemgen is not limited to Python. You pick language (e.g. TypeScript, Dart, Go), framework, database, auth, validation, and folder layout from prompts or templates—use it for APIs, frontends, mobile, or CLIs on whatever stack you use.

Metadata

Release files for systemgen 0.1.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 systemgen 0.1.0
File Size Uploaded Provenance
systemgen-0.1.0.tar.gz 17.1 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for systemgen 0.1.0
File Interpreter ABI Platform
systemgen-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 34.6 kB

Release files / systemgen-0.1.0.tar.gz

Download URL systemgen-0.1.0.tar.gz
Size 17.1 kB
Tags Source
SHA-256 checksum
How to use checksums
3bf5b9b615fda2aa95d18df9f82b6465e58bcad2ae432293b7bc45e4632ae54d
BLAKE2b-256 checksum
How to use checksums
e935a9f4fa1da7997f3408da2ab82b8265737b1279396d7a320ac00fea6a2cad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Release files / systemgen-0.1.0-py3-none-any.whl

Download URL systemgen-0.1.0-py3-none-any.whl
Size 17.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
ce663fe68017dd21e8c8e40a19a47f428be0a74c6bab573e03aec7be6317336f
BLAKE2b-256 checksum
How to use checksums
c823eab3f43bb4735c67be12ec001a7bc6d331069c819d9f612f84ba3aa171ba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.13.7

Security for systemgen 0.1.0

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.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files No provenance

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