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):
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
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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | fe95c90e24d49e63e9820fec88ffa94275914805f92de6d2f7f9351946174679 |
|
MD5 | 33d6e912b3a57b3f8412514c792b7265 |
|
BLAKE2b-256 | d22b3b0d7306ee00e5a2f2a46a6d0e594a064bbf4b605f0362b898344e57baaf |
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
Algorithm | Hash digest | |
---|---|---|
SHA256 | 90d2cf91f82fd1938c108eaa333002b7aae52d7afd6bf9d67d27cb02d41246e1 |
|
MD5 | ac492914ebc1bb1d91ce12e8d7aac80f |
|
BLAKE2b-256 | fe1aeea033cec67665b58e17fe2f2991cf70deb666221072409f74c970af8cd0 |