Aller au contenu principal
Peef

← Articles · · Mis à jour le · Programmation

Jo to run local LLM on local PC without the need of a GPU

Par Nasser, développeur Odoo depuis 2016, certifié Odoo, membre de l'OCA.

Jo is a personal project that runs AI agents on a PC without a graphics card. The story of how it went from a CLI script to a desktop app.

Jo is a personal project I started in March 2025. It's a simple tool to run AI agents on a local PC without the need of a GPU. This article is a timeline I update every time I do a bigger release of Jo.

It's still in development and is not public yet.

As I keep improving it, I'm writing LinkedIn posts about it:

October 2026, a desktop app, built on top of pi agent harness

Jo is now a Tauri + Vue desktop app, still with no GPU requirement: it runs through pi as engine, which support any model.

  • Notes allow me to keep all my notes in markdown, like Obsidian. It's the extension of my brain.

Notes screen

  • The agent-per-prompt is now Bots: each bot has a specific role and use its own tools, powered by pi.
  • The Knowledge bot answers to my questions from my Notes
  • The Video producer bot help me to make and edit videos with AI

Bots screen

  • The Settings is where i can set the models, the notes folder and the videos folder.

Settings screen

September 2026, a GUI as a productivity tool

Jo stopped being "a prompt picker in a terminal" and got a window: a grid of agent cards: Thinking, Writing, Sales, Planning, Code, Translator.

the agent picker

The translator agent has a proper chat window with a language picker instead of typing language codes.

translator agent in the GUI

It also stopped being just an agent runner and became a tool I actually use every day:

  • PDF split/merge, downloads, etc.
  • translations
  • a knowledge app (RAG on my own notes)

March 2025, a CLI script with a prompt folder

The first version was a Python script. One config file, one prompt folder, one idea: each agent is just a prompt file, and the script picks the right one and starts a chat with the LLM.

jo.conf
model=claude api_key=azerty prompts_path=prompts
uv run jo.py [--args]

> jo translate
> jo debug --prompt=odoo-debug
> jo answer prompt=general
> jo code prompt=odoo-code

overview

Only one agent actually worked at that point: the translator. Running uv run jo.py translate opened an interactive session in the terminal.

translator agent in the terminal

Sur le même sujet

Continuer la lecture

Tous les articles sur ce sujet

Newsletter · une fois par mois

Un cas réel de production Odoo, chaque mois

Ce que j'ai fait sur une migration, une intégration ou une chaîne de production : le code, ce qui a cassé, et pourquoi. Rien d'autre.

Aucun spam. Désinscription en un clic.