Skip to main content

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.

Metadata

Release files for jemma 0.1.4207

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for jemma 0.1.4207
File Size Uploaded
jemma-0.1.4207.tar.gz 36.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for jemma 0.1.4207
File Interpreter ABI Platform
jemma-0.1.4207-py3-none-any.whl Python 3 none any Details

Total release size: 78.1 kB

Release files / jemma-0.1.4207.tar.gz

Download URL jemma-0.1.4207.tar.gz
Size 36.2 kB
Tags Source
SHA-256 checksum
How to use checksums
fe95c90e24d49e63e9820fec88ffa94275914805f92de6d2f7f9351946174679
BLAKE2b-256 checksum
How to use checksums
d22b3b0d7306ee00e5a2f2a46a6d0e594a064bbf4b605f0362b898344e57baaf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.3

Release files / jemma-0.1.4207-py3-none-any.whl

Download URL jemma-0.1.4207-py3-none-any.whl
Size 41.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
90d2cf91f82fd1938c108eaa333002b7aae52d7afd6bf9d67d27cb02d41246e1
BLAKE2b-256 checksum
How to use checksums
fe1aeea033cec67665b58e17fe2f2991cf70deb666221072409f74c970af8cd0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/5.1.0 CPython/3.12.3
Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page