Skip to main content

A cli tool to generate custom Python scripts

Project description

🏭 Script-O-Matic

Welcome to Script-O-Matic, your friendly neighborhood Python script generator! 🐍✨

🎯 What is Script-O-Matic?

Script-O-Matic is a CLI tool that turns your ideas into fully-functional Python scripts. It uses structured output from the OpenAI API to generate scripts that are both creative and functional, as well as DSPy to refine your query to make it more specific and actionable. Check out the /example-scripts folder for some examples of what Script-O-Matic can make, feel free to add to it.

🚀 Features

Generate custom Python scripts based on your prompts Get inspiration for script ideas with --inspo Automatic package installation Interactive mode for script refinement Powered by the latest AI models

🛠 Installation

First, make sure you have Python 3.11 or later installed. Then, you can install Script-O-Matic using pip:

pip install scriptomatic

🔑 Setup

Yeah, you're gonna need an OpenAI API key. You can get one from OpenAI's website.

"But Ty, I don't want to use OpenAI, Claude is better at coding!" I agree with you. But Claude doesn't support structured outputs yet. When it does make a PR plz.

Set it as an environment variable:

export OPENAI_API_KEY='your-api-key-here'

Or, for the Windows wizards out there:

set OPENAI_API_KEY=your-api-key-here

🎭 Usage

CLI Magic

Generate a script with a simple prompt:

scriptomatic "Create a script that converts a jpg to a png"

Need Inspiration?

Get inspired with the --inspo flag, which creates five script ideas from your fuzzy idea:

scriptomatic --inspo

Generate and test the script in a loop

Script-O-Matic will keep trying to run the script until it gets it right, with a human-in-the-loop to help refine the script.

scriptomatic "Web scraper for cat facts" --loop

Let Script-O-Matic keep trying until it gets it right

Careful with this one. It's essentially an infinite loop until it gets it right, or you kill it with ctrl+c.

scriptomatic "Calculate prime numbers" --autoloop

Python Usage

The Scriptomatic class can be imported and used in your Python scripts, and has a whole host of methods for generating scripts and getting inspiration. Everything in the project is modular and extensible, so you can customize Script-O-Matic to your heart's content.

from scriptomatic import Scriptomatic

scriptomatic = Scriptomatic(model="gpt-4o-mini", temperature=0.6)

scriptomatic.generate_script("Create a script that builds scripts")

🌟 Contributing

Found a bug? Have an idea for an enchanting new feature? Let me know! Open an issue or submit a pull request here on GitHub.

📜 License

Script-O-Matic is released under the MIT License. Do whatever you want with it!

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

scriptomatic-1.0.3.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

scriptomatic-1.0.3-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file scriptomatic-1.0.3.tar.gz.

File metadata

  • Download URL: scriptomatic-1.0.3.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/23.5.0

File hashes

Hashes for scriptomatic-1.0.3.tar.gz
Algorithm Hash digest
SHA256 9299a884c0604eb85500437c0b36fc4162716acb9c3cd8e5515cf3879a9c0f37
MD5 fdeb35a5c6dcee2b325a1f693b12b6ee
BLAKE2b-256 b06e99ebd774652ba4eebe80d347d98b8b488912684a8e1e54a5f2c156dcb8c2

See more details on using hashes here.

File details

Details for the file scriptomatic-1.0.3-py3-none-any.whl.

File metadata

  • Download URL: scriptomatic-1.0.3-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.3 CPython/3.11.9 Darwin/23.5.0

File hashes

Hashes for scriptomatic-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 6125c32b21c0d79e44f3f7d7785ac0b9c255c7acb1fdb8569c5e013485888860
MD5 0cfbe963b58d15ac4518c88a64576b20
BLAKE2b-256 683c2ded26f9f2736e0d21f7596a0e4c33fb692ebef3d95a61ebc09871b4629b

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page