Your agent’s small, local helper.

4× faster
preparation.

Less time getting a screenshot ready.
More room for the work you came to do.

Local screenshot preparation only.
Agent review and clicks are excluded.

A little Tavi help
before the big task.

Tavi runs on your CPU. It suggests a model tier and useful skills for Codex, then leaves the plan with your agent.

A route that fits
the request.

Start with local model advice. Keep speed, complexity and uncertainty visible when choosing what runs.

Explore example requests ↗

The right instructions,
closer to hand.

Suggest relevant installed skills. For new ones, start with AwesomeSkill discovery and inspect the source before installing.

Read the discovery workflow ↗

Read the screen.
Keep OCR ready.

Reuse local Windows text recognition between screenshots. Review a compact target proposal, with image interpretation available as an explicit fallback.

See the speed and recognition results ↗

Open it up.
Make it yours.

The source, model files and test notes are on GitHub. Start in a new folder with a separate Python environment.

Browse release v0.14 ↗

A smaller model can prepare the route. Your agent still needs to understand the task, read the instructions and check the result.

From a thought
to a checked
next step.

Local advice helps you begin. It does not turn a recommendation into a guarantee.

“Make this page work on mobile.” input → local model

Start with
what you need.

Tavi estimates the workload and suggests skill labels from the request. A weak signal can ask for review.

INPUT / READ THE TASK

local route ├─ model tier ├─ installed skills └─ uncertainty

Bring the pieces
together.

Match the recommendation to available models and installed skills. Inspect any new skill before choosing to download it.

ROUTE / INSPECT THE PLAN

agent review → supported tools → observed result

Let the agent
do the checking.

Your agent reads the selected instructions, acts within your request and verifies what happened. Screen targets still need a current UI check.

REVIEW / ACT AND VERIFY

Less startup.
Less waiting.

The same local preparation, measured with a fresh OCR process and a session kept ready.

Fresh OCR process549.5 ms
Warm OCR session139.7 ms

30 paired requests · 3.93× median speedup

A quicker starting point.
A result with limits.

Keeping Windows OCR ready cut median local processing time by 74.6% in this test. We round 3.93× to 4× in the headline.

Timing includes screenshot preparation, OCR and target proposals. It excludes agent review, physical clicks, app response and hosted image inference. The first session startup still takes time.

Read the method and saved evidence ↗
Recognition accuracy and automatic-click limits

Both timing methods ranked the real button first in 5 of 12 positive requests. No target qualified for automatic clicking. In a separate real-screen check, 16 unique predictions scored at least 95%, and none identified the correct button target.

Current target percentages come from synthetic training and are not validated action-safety probabilities. The agent must review targets and verify the current control. Rejected training candidates stay inactive; this release does not claim more than 90% accuracy across all evaluations.

Every task begins
a little differently.

Example requests to explore before trying a real task.

AN EXAMPLE REQUEST

“Make this page work on mobile.”

An illustrative interface task. Tavi can suggest a model tier and relevant installed design skills. Your agent reads the skills and checks the plan.

The way I work.
Yours to borrow.

Marceli’s reusable instructions for keeping tasks, decisions, delegation and website reviews clear.

Install the workflow pack from your project folder using PowerShell. A Unix installer is also available.

irm https://tavi.marceli.tech/workflows/install.ps1 | iex

Read the Unix installer ↗

Keep a Work Ledger

Markdown / yours to edit
# Keep a Work Ledger

A portable public edition of Marceli's project workflow.

For ongoing technical work, use a project-local Work-Ledger.md as the canonical state. Read it before substantial continuation. Do not create a ledger for a simple one-off question.

Start each project response with the current ledger, then explain the next action. Use stable scoped task IDs and explicit statuses: in progress, next, optional, waiting for evidence, blocked, done, or failed.

Each task records its objective, evidence, dependencies and blockers. Separate confirmed facts from hypotheses. Mark completion only after the intended result has been verified; running a command is not proof of success.

Keep the ledger append-preserving. Never renumber tasks, reuse an ID, silently drop unresolved work or erase earlier evidence. Completed tasks can be grouped in the displayed summary, but every task remains in storage.

Before saving, check for concurrent changes. Merge newer state rather than overwriting it. When another issue appears, give it a new ID and preserve the current task's scope.

Prefer the smallest reversible diagnostic that distinguishes between explanations. Record what was checked, the observed result, what changed, and what remains unverified.

Do not publish private project state to another service without authorization. Keep credentials and hidden reasoning out of the ledger.
Download .md ↗

A small beginning.
Make it yours.

irm https://tavi.marceli.tech/install.ps1 | iex

Requires Git and Python 3.12+. Installs pinned v0.14 source into a new folder with its own Python environment and a Codex skill.

Existing folders and skills are kept. Setup checks an offline prediction and starts no hosted tasks. Optional Windows screenshot support needs extra dependencies.

Hosted work uses your own Codex login and allowance. Tavi itself runs on CPU. Claude Code integration is in development.

Prefer to ask Codex? Copy the setup Markdown.
# Set up Tavi

Install Tavi locally and prepare its Codex skill.

## 01 — Install locally

Read https://github.com/marceli1404/tavi and its README first. Clone the project into a new folder. Use Python 3.12 or later, create a virtual environment, and install requirements.txt inside it. Copy tavi.config.example.json to tavi.config.json and check the skill directories and model choices for this machine.

## 02 — Connect the skill

Set up the included tavi-decision skill for my Codex installation. Use the actual checkout and Python environment paths. Preserve my existing settings and skills; explain any conflict before replacing anything.

## 03 — Check the result

Run `python tavi.py predict "Say hello"` with the virtual environment's Python. If Codex is available, show a sample routing plan with `python tavi.py route "Fix a mobile navigation menu" --plan`. Explain any `needs_review` result and report the installation paths.

Do not start a hosted model task unless I explicitly ask.
Download .md ↗