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 hashes)

Uploaded Source

Built Distribution

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

Uploaded Python 3

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