Back to Projects
Friday AI
Python
LLM
Gemini API
Tool calling
Windows
A Python desktop assistant in which a Gemini model triggers local tools (apps, files, timers, volume), built without agent frameworks to understand how LLM tool calling works.

What it is
Friday is a personal Windows assistant that lets a Gemini model trigger local Python skills: opening apps, organizing the Desktop, setting timers, managing todos and controlling volume. It runs from the system tray, with a hotkey-activated chat window, or as a terminal or web chat.
I built it to learn how LLM tool use works under the hood, so it deliberately avoids agent frameworks and the Gemini SDK.
How it works
- The agent sends the model a prompt with the available tools and the last few turns. The model answers in text or with a JSON object such as a tool name and its arguments.
- A tools registry maps each JSON call onto a Python function by inspecting its signature, and absorbs common argument-name differences.
- The API client lists the models available to the key, picks the first one that answers a probe, and retries with exponential backoff on rate limits.
- Each skill is imported on its own, so a missing optional dependency only disables that skill.
Limitations
- Single-step only: tool results are shown to the user but not sent back to the model, so it cannot chain actions.
- Tool calling is prompt-based (JSON in plain text), not Gemini's native function calling.
- Short memory: only the last three exchanges.
Possible next steps
Feed tool results back to the model, use native function calling, and expose the skills as an MCP server.