How jacob-sauve/leafcutter-lite works
Leafcutter Lite is a local-model desktop assistant: a user enters a request, the prompt and Ollama model produce JSON, and the program either displays a chat response or dispatches a file tool and displays its result. File listing, overwriting, and appending are distinct tool capabilities. Runtime behavior is concentrated in main.py; the graph reflects the documented workflow and sampled implementation.
Main entry points: main.py Interactive Loop
Components 11
User Interaction
- Interactive Loop
main.py - Output Display
main.py
Model Workflow
- Prompt Template
main.py - Ollama Model
- JSON Parsing
main.py - Tool Dispatch
main.py
File Tools
- List Files
main.py - Write File
main.py - Append File
main.py - Local Filesystem
Other components
- User
Connections 15
- User → Interactive Loop: enters request
- Interactive Loop → Prompt Template: invokes chain
- Prompt Template → Ollama Model: formats prompt
- Ollama Model → JSON Parsing: returns response
- Interactive Loop → JSON Parsing: parses content
- Interactive Loop → Tool Dispatch: dispatches tool
- Tool Dispatch → List Files: invokes
- Tool Dispatch → Write File: invokes
- Tool Dispatch → Append File: invokes
- List Files → Local Filesystem: lists files
- Write File → Local Filesystem: writes file
- Append File → Local Filesystem: appends file
- Interactive Loop → Output Display: prints response
- Interactive Loop → Output Display: prints tool result
- Output Display → User: shows output