████████╗███████╗██╗ ██╗██╗ ██╗
╚══██╔══╝██╔════╝██║ ██║██║ ██║
██║ ███████╗███████║██║ ██║
██║ ╚════██║██╔══██║██║ ██║
██║ ███████║██║ ██║███████╗███████╗
╚═╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚══════╝
turtle shell · crawl into the nest · local LLM chat in your terminal
pip install -r requirements.txt # textual + ollama
ollama serve # start the nest (separate terminal)
ollama pull llama3 # pull a model if you haven't
python app.py # launch tshll| Key | Action |
|---|---|
Enter |
Send message / dismiss splash |
Ctrl+N |
New shell (conversation) |
Ctrl+M |
Switch model (the nest) |
Ctrl+B |
Toggle sidebar |
Ctrl+L |
Clear current shell |
Ctrl+J |
Focus input bar |
Ctrl+Q |
Quit |
Esc |
Close modal |
Ctrl+T toggles between two themes:
- Electron Highlighter — full dark theme, explicit colors
- Terminal native — inherits your terminal's own colorscheme (
$background,$primary, etc.)
If you want to default to terminal native, swap CSS_PATH = THEME_ELECTRON to CSS_PATH = THEME_TERMINAL in app.py.
tshll/
├── app.py # application
├── theme_electron.tcss # electron highlighter theme
├── theme_terminal.tcss # terminal-native bare theme
├── requirements.txt
└── README.md
- tshll — turtle shell (drop the vowels, keep the vibe)
- the nest — what the local model backend is called
- shells — individual conversations
- Turtle emoji 🐢 used throughout as the brand mark
