Open source · Apache-2.0 · beta

An always-on AI agent.
On your own machine.

Jig is a personal agent that keeps working while you are away, using the local model of your choice. Its memory, rules, audit trail and secrets stay on your machine, in files you can inspect and edit.

Idle

This is the live avatar component from the app, drawn in your browser. Try its states:

Meet Jig in 47 seconds

Every frame of this video was rendered from the same avatar component, driven by the same states the runtime emits. Nothing is screen-recorded.

The video starts muted. Use the controls for sound.

What Jig does

Jig is under active development. These parts are in the code today; voice is on the roadmap.

Safety model

Safety is enforced in code, at the tool level. The prompt describes the rules but cannot loosen them. Every tool call passes through one gate, in this order:

  1. Schema. The tool must exist and its arguments must match its JSON schema.
  2. Mode. Each tool is tagged read, private write or side effect. Research mode is never offered side-effecting tools, and the gate refuses them even if the model tries.
  3. Core rules. Hard-coded and stricter-only: no credential changes, secrets only for their allowed tools, no outbound calls to localhost or the local network, and human-only actions, and anything that looks like a payment, checkout or booking, always need you.
  4. Your rules. Allow, ask or block per tool, optionally matched on an argument such as a URL.
  5. The Sentinel. A safety checker reviews every outbound or side-effecting action. It is the agent's own model by default (a different one is optional), called on its own with its own instructions and no tools. It never sees the agent's conversation, so injected web content cannot address it. A deny is final.
  6. Approvals. When a human is needed the task pauses, and resumes as soon as you approve or deny it.
  7. Vault. Tools use secrets by reference. Values are inserted only when the tool runs and are redacted from results, so the model never sees them.

Limits. The safety model is under active development and has not been independently audited. The default directory sandbox is a folder jail, not an operating-system sandbox; use the container backend for code and browsing. Please report weaknesses through the security policy.

Bring your own local model

Jig is model-agnostic. The endpoint, model name and sampling settings all come from your settings, and nothing in the code assumes a particular model or prompt format.

Compatible servers

Any OpenAI-compatible endpoint with tool calling, for example:

  • llama.cpp, including forks
  • Ollama
  • LM Studio
  • vLLM

Example profiles for each are in profiles/.

Built for local models. If you want a cloud model, OpenAI, OpenRouter, Anthropic and Gemini work too, only after you explicitly consent, and the safety checker can stay local.

Minimum capabilities

  • Reliable native tool calling with well-formed JSON arguments
  • JSON-schema structured output
  • A context of 32K tokens or more (advisable)
  • Decent instruction following

At start-up Jig makes a real tool call and a real structured-output request against your model. Until both pass, the agent stays off: Jig shows only its set-up page and says what is wrong.

One tested set-up

Jig was developed against a 27B-class model on llama.cpp, on a single RTX 5090.

That is one example, not a requirement. Use whatever capable model your hardware runs well.

Quick start

Jig needs two things: Jig itself, and a model to think with. The model can run on your own computer, in a free app such as LM Studio or Ollama, or you can use a cloud model with an API key. Jig's set-up page helps you choose, and checks your choice works before the agent starts.

Don't run pip install jig. That name on PyPI belongs to an unrelated project. Use the Windows installer, or install from the repository as below.

Windows: the installer

  1. Download JigSetup-<version>.exe from the v0.1.0b2 release. It is for 64-bit Windows.
  2. Open it. The installer isn't code-signed yet, so Windows will probably warn you. If your browser says the file isn't commonly downloaded, choose Keep. If Windows shows "Windows protected your PC", click More info, then Run anyway. Only do this for the file from Jig's releases page.
  3. Click through the installer. It needs no administrator rights and no Python, Git or terminal. It asks whether Jig should start when you sign in to Windows; that is off unless you tick it.
  4. Jig opens in its own window on its set-up page. Choose a model, and Jig checks it and starts. Afterwards, open Jig from the Start menu or its icon by the clock.
  5. Closing the window leaves Jig running, so schedules still run. To turn Jig off, use Turn Jig off on its icon by the clock. If you prefer your browser, Open in browser is at the top right of the window and on the icon.

The window uses Microsoft Edge WebView2, which comes with Windows 11. If it's missing, Jig offers to get it (free, from Microsoft) or to open in your browser instead.

macOS and Linux: the developer route

There is no installer for macOS or Linux yet. Install from the repository instead; you need Python 3.11 or newer, Git and a terminal. The same steps work on Windows without the installer, using .\.venv\Scripts\ instead of .venv/bin/.

git clone https://github.com/rlesueur/jig.git
cd jig
python3 -m venv .venv
.venv/bin/python -m pip install -e .
.venv/bin/jig serve

jig serve opens Jig, already signed in: in your browser on macOS and Linux, and in its own window on Windows (add --browser to use the browser there too). If Jig has no working model yet, it opens on its set-up page. Leave the terminal open: closing it stops Jig. To open Jig again while it's running, run jig ui (which also takes --browser).

Need a model?

If you already run llama.cpp, LM Studio or Ollama, the set-up page finds it on its usual port, or you can type its address. If you don't, here is a suggestion for a graphics card with 10 to 12 GB of memory:

  • Granite 4.2 8B, the Q4_K_M version (a 5.3 GB download). Measured with llama.cpp's llama-server: about 8.1 GB of graphics memory with a 16K context, and about 10.6 GB with 32K. Jig works best with 32K, which needs a 12 GB card.
  • Below 10 GB, or with no graphics card, nothing has been measured yet: a cloud model is the tested choice.

This is a suggestion, not a requirement: any capable model with tool calling works. The figures are single measurements on one card, so allow some margin. The set-up page reads your graphics card and makes the same suggestion.

Once Jig is running, everything is in Settings: changing the model, cloud keys, running code (with Docker), starting with Windows, connecting your accounts and using Jig from your phone. The README covers the details, configuration files, the API, tests and the container sandbox.