Skip to main content

REPL.io

Python >=3.10 MIT License Zero dependencies PyPI version CI

A lightweight agentic tooling core with API, CLI and REPL interfaces.

REPL.io is deliberately small and auditable zero-dependency agentic core built on a single streaming agent loop. The model plans, the tool registry acts, and one loop serves three front-ends: an interactive REPL, a headless one-shot CLI, and an HTTP API.

Why

  • Zero dependencies — everything is Python standard library. No dependency tree to audit, no supply-chain surface, no lockfile churn
  • One agent loop — a single SSE stream per turn powers the REPL, the CLI, and the API. No duplicated logic across front-ends
  • Local-first — config and session logs live on your disk. Bring your own provider key, or run fully local

Features

  • Agentic REPL — streaming token-by-token output, dimmed thinking, markdown-aware rendering, readline history and tab completion
  • Tool calling — web search, page fetching, file read/write/search, and shell execution via OpenAI-compatible function calling
  • Permissions — every tool is gated by allow / ask / deny, with path-scoped confirmations for anything outside your worktree
  • Plugins — external repositories register tools, providers, and slash commands; the core stays zero-dependency and plugin deps are imported lazily, only when you activate a plugin
  • Multi-provider — Ollama, OpenAI, Groq, Anthropic, plus any OpenAI-compatible endpoint, with automatic detection from the base URL
  • Sessions — complete append-only conversation logs, including every tool call and its result
  • Compaction — summarize long conversations and trim the provider context without losing history
  • Headless modes — replio run for scripting and replio serve for an HTTP JSON API

Quick Start

pipx install replio
replio

Or from source:

git clone https://github.com/emyasnikov/replio.git && cd replio
python3 -m venv .venv && .venv/bin/pip install -e .
.venv/bin/replio

Usage

REPL

First-time setup with /connect, then type any message. Tab-complete / commands and session names. Use arrow keys to navigate history.

>>> /connect
  Provider [ollama]:
  Base URL [https://ollama.com]:
  API key: ...
  Model [gpt-oss:20b-cloud]:
>>> Hi
<<< Hello! How can I help you today?
>>> /exit

CLI

Stream plain text with --output text or return the results as JSON, log tool status and diagnostics to stderr with --verbose, and address a persistent session with --session-id <id>. Tools that require confirmation are auto-denied in by default, just pass --yes to approve them.

replio run --prompt "Hi"
{
  "content": "Hello! How can I help you today?",
  "thinking": null,
  "tool_calls": [],
  "errors": [],
  "duration": 7.0,
  "usage": null,
  "model": "gpt-oss:20b-cloud",
  "provider": "ollama",
  "session": "20260814_192251_hi",
  "status": "ok"
}

API

Server exposes different JSON endpoints like POST /chat ({"prompt": ...}, optionally {"session_id": ...}) returns the same turn result as the CLI etc.

replio serve &
curl localhost:8787/chat -X POST -d '{"prompt": "Hi"}'
{"content": "Hello! 👋 How can I help you today?", "thinking": null, "tool_calls": [], "errors": [], "duration": 7.0, "usage": null, "model": "gpt-oss:20b-cloud", "provider": "ollama", "session": "20260814_192711_hi", "status": "ok"}

Roadmap

Personas and delegation are planned next. The plugin system is in place (web and machine tools now ship as bundled plugins), and third-party plugins install from git or a path. See docs/plugins.md. Open tasks live in TODO.md.

Contributing

The project is stdlib-only with no external dependencies. See AGENTS.md for architecture and conventions, and CONTRIBUTING.md for the contribution workflow.

Documentation

Detailed references are in the docs:

License

MIT

Release files for replio 0.13.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for replio 0.13.0
File Size Uploaded
replio-0.13.0.tar.gz 57.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for replio 0.13.0
File Interpreter ABI Platform
replio-0.13.0-py3-none-any.whl Python 3 none any Details

Total release size: 102.8 kB

Release files / replio-0.13.0.tar.gz

Download URL replio-0.13.0.tar.gz
Size 57.6 kB
Tags Source
SHA-256 checksum
How to use checksums
8c5c11421b94b577750c3ca83e67cda773631f7bd2cfde0eb88a1d3511981f42
BLAKE2b-256 checksum
How to use checksums
ed0e5a54927b474cdcffa5c06f8f5e95bfbec42eaf6b3baa1f949ec7f17397c9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / replio-0.13.0-py3-none-any.whl

Download URL replio-0.13.0-py3-none-any.whl
Size 45.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
fea261a7aa32aba1fb366360defda78de3ac5bd07fe712d12d3363a2fbe51ab4
BLAKE2b-256 checksum
How to use checksums
1d5ab2216b3a14506c9ef93ee9658d575381e75fd0ea9e73547ba291a4ddcea7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release history Release notifications | RSS feed

0.36.0

2 release files

0.35.0

2 release files

0.34.0

2 release files

0.33.0

2 release files

0.32.0

2 release files

0.31.0

2 release files

0.30.0

2 release files

0.23.0

2 release files

0.22.0

2 release files

0.21.0

2 release files

0.20.0

2 release files

0.19.0

2 release files

0.18.0

2 release files

0.17.0

2 release files

0.16.0

2 release files

0.15.0

2 release files

0.14.0

2 release files

This release

0.13.0 This release

2 release files

0.12.0

2 release files

0.11.0

2 release files

0.10.0

2 release files

0.9.0

2 release files

0.5.0

2 release files

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