Jimmy Jimmy Ajaa πΆ
task β think β code β test β ship
π³ Give Jimmy a task. Let Jimmy cook.
Jimmy Code is a terminal-native AI coding agent built with Python + Textual.
Give it a task.
Jimmy can read your code, search files, edit code, run commands, run tests, use Git, and keep going until the job is done.
No browser. No Electron. No tab explosion. π
Just:
You
β
π Think
β
π§ Use tools
β
π See results
β
π οΈ Fix things
β
π§ͺ Test
β
β
Done
β― commit that all 4 with short fun emoji message
β Ή checking git statusΒ·Β·Β· 0.3s
β checking git status 8ms
β reading jimmy.tcss 90ms
β committing "styling widgets nicely π"
I have committed all 4 files individuallyβ¦
β¦ 9.5s Β· 9.8k in Β· 393 out Β· 9 tools Β· 4 rounds
Jimmy doesn't dump a giant wall of logs at you.
It tells a story of what it's doing. πΊ
Jimmy runs a real agent loop:
think β tool β observe β think β fix β test
Not just:
prompt β code β good luck π
π read_files
π search_files
βοΈ edit_files
π write_file
π©Ή apply_patch
π list_files
π» shell
π§ͺ run_tests
πΏ git
Three permission modes:
| Mode | Power |
|---|---|
| π’ Ask | Ask before risky actions |
| π‘ Auto | Safe actions run automatically |
| π΄ Full Access | No approval prompts |
Dangerous action?
Jimmy stops.
π‘οΈ Approval required
Run:
git push origin main
β
Allow
π Allow session
β Deny
No sneaky permission escalation. π«
Jimmy saves sessions locally with SQLite + WAL.
~/.jimmy/sessions.db
So you can:
stop β come back later β continue β»οΈ
Powered by LiteLLM.
Pick your provider and model from Jimmy's UI.
Ctrl + M
Models are saved here:
~/.jimmy/models.json
Jimmy comes with:
β¨ interactive TUI π‘οΈ approval screens π€ model picker ποΈ session browser β command palette π¨ themes π sound β¨οΈ keyboard shortcuts π copyable results
git clone https://github.com/StarDust130/Jimmy-Code.git
cd Jimmy-Code
uv syncgit clone https://github.com/StarDust130/Jimmy-Code.git
cd Jimmy-Code
pip install -e .π Python 3.12+ π» A terminal π API key for a supported model provider
Launch:
jimmyGive it a task:
jimmy "fix the failing tests in src/"That's it.
π³ Now let Jimmy cook.
| Key | Action |
|---|---|
Enter |
Send |
Esc |
Stop / Back |
Ctrl+P |
Command palette |
Ctrl+M |
Model picker |
Ctrl+O |
Sessions |
Ctrl+N |
Home |
Ctrl+C |
Copy last |
Ctrl+A |
Copy all |
Ctrl+L |
Clear line |
Ctrl+S |
Sound |
Ctrl+Q |
Quit |
/ |
Commands |
/model
/permissions
/sessions
/new
/theme
/sound
/clear
/copy
/copyall
/help
/quit
π§ You
β
βΌ
ββββββββββββββ
β JimmyApp β
β Textual UI β
βββββββ¬βββββββ
β
βΌ
ββββββββββββββ
β Agent Loop β
β π π§ π β
βββββββ¬βββββββ
β
βββββββββββΌββββββββββ
βΌ βΌ βΌ
π‘οΈ Policy π§ Tools π€ LLM
β β β
βββββββββββΌββββββββββ
βΌ
ποΈ SQLite
Simple rule:
UI β Agent
Policy β Tools
Tools β Storage
Keep the pieces clean. Keep Jimmy fast. β‘
src/
βββ jimmy/
β βββ agent/ # agent loop
β βββ context/ # context management
β βββ llm/ # providers + models
β βββ permissions/ # safety + approvals
β βββ sessions/ # SQLite persistence
β βββ tools/ # tool registry
β βββ workspace/ # project scope
β
βββ tui/
βββ app.py # JimmyApp
βββ kit/ # theme + sound + helpers
βββ screens/ # app screens
βββ widgets/ # UI components
Jimmy currently has 290+ tests. β
Run them:
uv run pytest -qTesting covers the agent loop, permissions, approval flows, SQLite migrations, session recovery, cleanup, and UI interactions.
- π€ Agent loop
- π§° Coding tools
- π‘οΈ Permission system
- ποΈ Persistent sessions
- π·οΈ Automatic session titles
- π Model switching
- π¨ Terminal UI
- π§ Long-term memory
- πΌοΈ Image / file attachments
- π§© MCP plugins
π Ask Jimmy something stupid
$ jimmy "why am I single?"
Because even your git history
has no meaningful commits. π