Skip to main content

OpenJet

The local agent for your own GPU

Files -> tools -> shell approval -> workflows -> local model.

OpenJet runs the agent loop locally. No API calls. No code or data upload.

RTX 3090 + Qwen 27B: 33 tok/s -> 70 tok/s with MTP. Open source.

Discord

Someone built a local AI agent that runs on your own GPU.

OpenJet runs the agent loop locally:

files -> tools -> shell approval -> workflows -> local model

No API calls. No code or data upload.

RTX 3090 + Qwen 27B: 33 tok/s -> 70 tok/s with MTP.

Open source.

If you are new to local LLMs, OpenJet is the fastest way to get started without spending hours figuring out models, runtimes, and config. If you have already tried local LLMs and got frustrated piecing together a model backend, a frontend, and an actual agent workflow, OpenJet removes that setup tax.

This is the PyPI package for OpenJet. Install it with:

pip install open-jet

The package installs:

  • CLI + chat TUI — interactive local agent work in the terminal
  • Python SDK — embed sessions, profile hardware, and automate workflows
  • Benchmarking tools — measure prompt and generation performance on your hardware

Quick Start

pip install open-jet
openjet setup
openjet

openjet setup detects your hardware, picks a model that fits your RAM, downloads it, and gets everything running. Already have a .gguf? It finds that too.

Recommended hardware: Apple silicon with 24GB+ unified memory, or a GPU with 14GB+ VRAM.

CLI

The primary entrypoint is the openjet command:

openjet                  # start interactive session
openjet benchmark --sweep   # run a hardware benchmark sweep

The CLI is a full terminal agent that can:

  • Work with local files — search, read, create, and update files in your projects
  • Run shell commands — with explicit approval before execution
  • Run workflows and checks — inspect results, update files, and try again against the local model
  • Resume sessions — close the terminal and pick up where you left off
  • Work on constrained hardware — automatic context condensing and model unload/reload around heavy tasks
  • Connect to devices — cameras, microphones, GPIO, and remote devices for edge and embedded workflows
  • Connect tools — trusted MCP servers are exposed through the normal OpenJet tool registry

Python SDK

Use openjet.sdk to embed the same runtime in your own Python application.

from openjet.sdk import OpenJetSession, recommend_hardware_config

Session API

Run agent sessions programmatically:

import asyncio
from openjet.sdk import OpenJetSession


async def main() -> None:
    session = await OpenJetSession.create()
    try:
        result = await session.run("Summarize the current README")
        print(result.text)
    finally:
        await session.close()


asyncio.run(main())

The session API exposes:

  • OpenJetSession.create(...) — create a session
  • session.run(...) — run a prompt and get the result
  • session.stream(...) — stream events as they arrive
  • session.set_airgapped(...) — toggle air-gapped mode
  • session.add_turn_context(...) / session.clear_turn_context(...) — manage turn context
  • create_agent(...) — construct an agent instance

Hardware Recommendation API

Get model and runtime recommendations for your hardware:

from openjet.sdk import recommend_hardware_config

result = recommend_hardware_config(
    {
        "total_ram_gb": 16,
        "gpu": "cuda",
        "vram_mb": 24576,
        "label": "RTX 4090 box",
    }
)

print(result.model.label)
print(result.model.target_path)
print(result.llama.device)
print(result.llama.gpu_layers)
print(result.llama.context_window_tokens)

Typed input is also supported:

from openjet.sdk import HardwareRecommendationInput, recommend_hardware_config

result = recommend_hardware_config(
    HardwareRecommendationInput(
        total_ram_gb=8.0,
        gpu="cpu",
        hardware_profile="other",
        hardware_override="desktop_8",
    )
)

SDK Surface

The supported public SDK surface:

from openjet.sdk import (
    HardwareRecommendation,
    HardwareRecommendationInput,
    OpenJetSession,
    RecommendedLlamaConfig,
    RecommendedModel,
    SDKEvent,
    SDKEventKind,
    SDKResponse,
    ToolResult,
    create_agent,
    recommend_hardware_config,
)

Package Contents

This wheel includes the full OpenJet package:

  • openjet.sdk — Python integrations
  • CLI entrypoint openjet (installed as open-jet on PyPI)
  • Benchmark entrypoints via openjet benchmark
  • The local/session runtime shared by the SDK and CLI

Repository

License

OpenJet core is licensed under AGPL-3.0-only.

This package covers the AGPL-licensed core SDK and CLI. Future hosted, team, or enterprise offerings may be licensed separately.

External contributions are accepted under the contributor terms in the repository's CONTRIBUTING.md and CLA.md.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

open_jet-0.4.31-py3-none-any.whl (317.2 kB view details)

Uploaded Python 3

File details

Details for the file open_jet-0.4.31-py3-none-any.whl.

File metadata

  • Download URL: open_jet-0.4.31-py3-none-any.whl
  • Upload date:
  • Size: 317.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/7.0.0 CPython/3.12.13

File hashes

Hashes for open_jet-0.4.31-py3-none-any.whl
Algorithm Hash digest
SHA256 95c60ed76f6514826af34ce6b5d6b59a2ae7dbc9d53919059e13c9bc6b0ba3f5
MD5 19f22b700797b9f3a2c9382639582007
BLAKE2b-256 e00bbcff69b8eff054cdfe6d931e789b03d9730d1ff61e0a0bd50ecab918e28e

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.4.31 This release

1 file

0.4.30

1 file

0.4.29

1 file

0.4.28

1 file

0.4.27

1 file

0.4.26

1 file

0.4.25

1 file

0.4.24

1 file

0.4.23

1 file

0.4.22

1 file

0.4.21

1 file

0.4.20

1 file

0.4.19

1 file

0.4.18

1 file

0.4.17

1 file

0.4.16

1 file

0.4.15

1 file

0.4.14

1 file

0.4.13

1 file

0.4.12

1 file

0.4.11

1 file

0.4.10

1 file

0.4.9

1 file

0.4.8

1 file

0.4.7

1 file

0.4.6

1 file

0.4.5

1 file

0.4.4

1 file

0.4.2

1 file

0.4.1

1 file

0.3.13

1 file

0.3.12

1 file

0.3.11

1 file

0.3.10

1 file

0.3.9

1 file

0.3.8

1 file

0.3.7

1 file

0.3.6

1 file

0.3.5

1 file

0.3.3

1 file

0.1.16

1 file

0.1.14

1 file

0.1.13

1 file

0.1.12

1 file

0.1.10

1 file

0.1.8

1 file

0.1.5

1 file

0.1.4

1 file

0.1.3

1 file

0.1.2

1 file

0.1.0

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page