hey, I am Jemma. I convert your thoughts to code
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.
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
of course!
$ 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! đ¤
$ 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 >
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.
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
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.
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 â
...
Copyright Š 2024 tolitius
Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.