Skip to main content

jemma & her ai agents that build software

Project description

jemma

hey, I am Jemma. I convert your thoughts to code

🧬 what I do

I take an idea in a form of:

  • a few words, such as "Bill Pay Service", "2048" or "Kanban Board"
  • OR a text file with requirements

and I create a web based prototype 🚀

in fact I just created all three 👆 (so you can quickly see what I mean):

image

after the prototype is built, I take feedback and refactor it.

🎨 am sketchin'

I also dabble in converting sketches to web app mockups:

$ jemma --prompt "Learning Portal" --sketch ~/tmp/sketch.png --build-prototype --claude
image

this does require one or two hints of feedback, but I'm getting better

🕹️ can I play?

of course!

install me

$ pip install jemma

add a ".env" file from where I am going to be called from with API keys of your choice:

export ANTHROPIC_API_KEY=sk-ant-api03...
export OPENAI_API_KEY=sk-puk...
export REPLICATE_API_TOKEN=r8_ai...

ready to rock! :metal:

convert ideas to code

$ jemma --prompt "Bill Pay Service" --build-prototype --claude

I will assemble a team who will build a prototype, open a browser with it, and wait for your feedback:

Claude 🧠 claude-3-haiku-20240307 ✅

> Project Manager:
Dear Business Owner, in this meeting we'll work on creating requirements based on the 💡 idea

> Business Owner: 📚 creating detailed requirements ...🖋️

> Project Manager:
Dear Engineer, in this meeting let's put our heads together to build a prototype based on the requirements.

> Engineer: 💫 creating a prototype based on the requirements...
> Engineer: crafting css 🎨 (a.k.a. "visual beauty")
> Engineer: cooking javascript 🎮 (a.k.a. "master of interactions")
> Engineer: creating html 🕸️ (a.k.a. "the skeleton of the web")

prototype files created successfully:
- prototype/index.html
- prototype/app.js
- prototype/app.css
opened prototype in the web browser

tell me how to make it better >

🛠️ how I do it

I rely on my team of project managers, business owners and engineers
yes... "AI Agents"

When I get an idea a Project Manager meets with a Business Owner to take it in and create a comprehensive set of requirements
then the Project Manager meets with an Engineer to build the idea based on these new requirements.

models

I best work with Claude models, that is why my examples all end in "--claude":

$ jemma --prompt "Trivia Game" --build-prototype --claude

by default though I will call Ollama (llama3 model):

$ jemma --prompt "Trivia Game" --build-prototype
Ollama 🧠 llama3:8b-instruct-fp16 

here are the default models I would use:

model param default model
--claude claude-3-haiku-20240307
--openai gpt-3.5-turbo
--ollama llama3:8b-instruct-fp16
--replicate meta/meta-llama-3-70b-instruct
--copilot gpt-3.5-turbo

but you can override all of these with your (local, or not) models:

$ jemma --prompt "Trivia Game" --build-prototype --claude claude-3-opus-20240229
$ jemma --prompt "Trivia Game" --build-prototype --ollama dolphin-mistral:7b-v2.6-dpo-laser-fp16
$ jemma --prompt "Trivia Game" --build-prototype --openai gpt-4-turbo-preview
$ jemma --prompt "Trivia Game" --build-prototype --replicate meta/llama-2-70b-chat
$ jemma --prompt "Trivia Game" --build-prototype --copilot gpt-4
$ ...

but, at least for now, the best results are produced with Claude based models

problems

I am still learning, so some prototypes that I build might result in errors
this would especially be likely with non Claude based models

but, we are all learning, and I love feedback:

tell me how to make it better > I see an error "app.js:138: uncaught TypeError: chordProgressionData.find(...) is undefined"

> Project Manager:
Dear Engineer, we have met with the user and received a valuable feedback. sudo make it better! 🛠️

> Engineer: 💫 refactoring prototype based on the feedback...

> Engineer: ♻️  crafting css 🎨 (a.k.a. "visual beauty")

> Engineer: ♻️  cooking javascript 🎮 (a.k.a. "master of interactions")

> Engineer: ♻️  creating html 🕸️ (a.k.a. "the skeleton of the web")
prototype files created successfully:
- prototype/index.html
- prototype/app.js
- prototype/app.css
opened prototype in the web browser

tell me how to make it better >

you can check for / find errors in your browser console

iff you know "how to HTML", you can help fix the code as well
it is often something simple: adding a CSS class, updating the "width", etc.

development

in order to run from source
clone jemma:

$ git clone git@github.com:tolitius/jemma.git

and

$ cd jemma
$ python huddle.py --prompt "Code Editor" --build-prototype --claude
Claude 🧠 claude-3-haiku-20240307 ✅
...

license

Copyright © 2024 tolitius

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.

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

jemma-0.1.4207.tar.gz (36.2 kB view details)

Uploaded Source

Built Distribution

jemma-0.1.4207-py3-none-any.whl (41.9 kB view details)

Uploaded Python 3

File details

Details for the file jemma-0.1.4207.tar.gz.

File metadata

  • Download URL: jemma-0.1.4207.tar.gz
  • Upload date:
  • Size: 36.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for jemma-0.1.4207.tar.gz
Algorithm Hash digest
SHA256 fe95c90e24d49e63e9820fec88ffa94275914805f92de6d2f7f9351946174679
MD5 33d6e912b3a57b3f8412514c792b7265
BLAKE2b-256 d22b3b0d7306ee00e5a2f2a46a6d0e594a064bbf4b605f0362b898344e57baaf

See more details on using hashes here.

File details

Details for the file jemma-0.1.4207-py3-none-any.whl.

File metadata

  • Download URL: jemma-0.1.4207-py3-none-any.whl
  • Upload date:
  • Size: 41.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.0 CPython/3.12.3

File hashes

Hashes for jemma-0.1.4207-py3-none-any.whl
Algorithm Hash digest
SHA256 90d2cf91f82fd1938c108eaa333002b7aae52d7afd6bf9d67d27cb02d41246e1
MD5 ac492914ebc1bb1d91ce12e8d7aac80f
BLAKE2b-256 fe1aeea033cec67665b58e17fe2f2991cf70deb666221072409f74c970af8cd0

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