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.

Screenshot of Friday AI

Friday AI Interface

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.

Project Links