opensquilla README

The project's README from github.com/TokenRhythm/opensquilla. As one markdown file: README.md.

OpenSquilla — Token-Efficient AI Agent

OpenSquilla logo

Same budget, more capability, better results.
A microkernel AI agent for your CLI, Web UI, and chat channels.

CI Website GitHub release Python 3.12+ Apache 2.0 License

English · 中文 · 日本語 · Français · Deutsch · Español


News


Overview

OpenSquilla is a token-efficient, microkernel AI agent. A local model router sends each turn to the cheapest model that can handle it, while persistent memory, a layered sandbox, built-in web search, and on-device embeddings round out a single shared turn loop.

Every entry point — Web UI, CLI, and chat channels — runs through that same loop, so tool dispatch, retries, and decision logging behave identically everywhere. A pluggable provider layer speaks to TokenRhythm, OpenRouter, OpenAI, Anthropic, Ollama, DeepSeek, Gemini, Qwen/DashScope, and 20+ other LLM providers with no change to your code or config schema.

OpenSquilla 0.5.4 is the current stable release.

For task-oriented product documentation, start with the OpenSquilla Product Guide or the documentation index.


Installation

OpenSquilla runs on Windows, macOS, and Linux. Pick the path that matches your use case.

Desktop installers and Quick terminal install give you a prebuilt release — no Git required. The other two — Install from source and Develop from source — build from a Git checkout (git clone + Git LFS), including the Vue control console. Release wheels and Desktop installers already contain that console, so their users do not need Node.js or npm.

Release install commands use published GitHub release assets. Python wheel installs use versioned wheel filenames because installers validate the version embedded in the wheel filename.

For 0.5.4 desktop use, prefer the packaged desktop installers from the GitHub Release: OpenSquilla-0.5.4-mac-arm64.dmg on macOS and OpenSquilla-0.5.4-win-x64.exe on Windows.

Path Audience When to use
Desktop installers (recommended desktop) macOS and Windows users Packaged desktop app
Quick terminal install (recommended) End users on any OS Release wheel from a terminal
Install from source Users tracking main Run from a checkout, not edit it
Develop from source Contributors Edit, test, or debug the source

Prerequisites

Requirement Quick terminal install Install from source Develop from source
Python 3.12+ via uv via uv or system via uv
Git + Git LFS — required required
Node.js 22.12+ + npm — required to build the Web UI required for Web UI and wheels
uv installed if missing recommended required

The default recommended profile installs SquillaRouter — OpenSquilla's on-device model router — and its model assets; OPENSQUILLA_INSTALL_PROFILE=core omits those dependencies. The separate --router disabled onboarding flag keeps the dependencies installed but turns the router off at runtime.

On Windows, SquillaRouter's bundled ONNX runtime also needs the Visual C++ runtime. The from-source PowerShell installer installs it automatically via winget; the Quick terminal install (uv tool install) path does not — if startup logs a DLL load failed error, install it manually (see Troubleshooting). OpenSquilla keeps running with direct single-model routing until it is installed.

On macOS terminal installs, SquillaRouter's LightGBM runtime may also need the system OpenMP library. The desktop app bundles the runtime it needs, but Quick terminal install does not install Homebrew/system libraries. If startup logs Library not loaded: @rpath/libomp.dylib, run brew install libomp, then restart the gateway. OpenSquilla keeps running with direct single-model routing until it is installed.

Install links: Git · Git LFS · Node.js · uv.

Desktop installers

The 0.5.4 desktop installers package the Vue control console and gateway runtime in an Electron shell.

For faster Mainland China downloads, use the OSS direct-download aliases:

These fixed links advance only after a newer eligible release passes mirror verification. Use the versioned GitHub Release links above when you need a specific release.

Quit any running OpenSquilla desktop app before upgrading. On macOS, drag the app from the DMG into Applications for installation or updates, eject the DMG, then open the Applications copy. The existing Desktop profile in the platform application-data directory is reused. A terminal installation's ~/.opensquilla is a separate profile; transfer it explicitly from Settings only if needed.

When upgrading the Windows Desktop from RC3 to RC4 or later, run the new installer directly over the existing installation. Do not uninstall RC3 first: its uninstaller may remove Desktop user data. Back up %APPDATA%\OpenSquilla before upgrading. RC4 and later installers preserve profile data during a normal uninstall.

Code signing policy: docs/code-signing-policy.md.

[!NOTE] The published v0.5.4 Windows installer remains unsigned. The current Release Assets workflow Authenticode signs new Windows installers as Beijing TokenRhythm Technologies Co., Ltd. SmartScreen reputation can still take time to build for a new publisher or application. If enterprise policy blocks the Desktop app, use Quick terminal install instead.

Quick terminal install

The recommended path on Windows, macOS, and Linux. uv installs OpenSquilla into its own isolated environment and manages its own Python — no system Python required. This path installs published releases only; for main, development branches, or local checkouts use Install from source.

1. Install uv — skip if uv --version already works.

Linux / macOS:

curl -LsSf https://astral.sh/uv/install.sh | sh
. "$HOME/.local/bin/env"

Windows PowerShell:

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"
$env:Path = "$env:USERPROFILE\.local\bin;" + $env:Path

2. Install OpenSquilla — the same command on every platform.

uv tool install --python 3.12 "opensquilla[recommended] @ https://github.com/TokenRhythm/opensquilla/releases/download/v0.5.4/opensquilla-0.5.4-py3-none-any.whl"

This installs the OpenSquilla wheel from the release URL, then lets uv download the dependencies declared by the selected extras. The default recommended extra includes SquillaRouter runtime dependencies such as ONNX Runtime, LightGBM, NumPy, and tokenizers, so a first install needs network access unless those wheels are already cached. uv does not install system native runtimes such as macOS libomp or the Windows Visual C++ Redistributable; see Troubleshooting if the router runtime reports a native-library load error.

3. Configure and run.

opensquilla onboard
opensquilla gateway run

[!NOTE] If opensquilla is not found right after a fresh uv install, open a new terminal, or re-run the PATH line from step 1.

For a fully pinned install, use the versioned wheel URL: https://github.com/TokenRhythm/opensquilla/releases/download/v0.5.4/opensquilla-0.5.4-py3-none-any.whl.

Install from source

Use this path to run OpenSquilla from a checkout without editing it. The clone is only the package source for the installer; after install, use the opensquilla command — do not run uv run. Choose Develop from source instead if you intend to modify the code.

  1. Clone with LFS assets

    git lfs install
    git clone https://github.com/TokenRhythm/opensquilla.git
    cd opensquilla
    git lfs pull --include="src/opensquilla/squilla_router/models/**"
    
  2. Run the installer

    macOS / Linux

    bash scripts/install_source.sh
    

    Windows PowerShell

    powershell -ExecutionPolicy Bypass -File ./scripts/install_source.ps1
    

    The script installs .[recommended] (SquillaRouter + memory + local models) into a dedicated user environment via uv tool install. Before the Python install, it runs npm ci and npm run build in opensquilla-webui. Every source reinstall recreates the locked node_modules tree and rebuilds the console; the first run normally has the largest dependency download, while a warm npm cache reduces later network use but not all build time or disk writes. It then installs the built console with the Python package, falling back to python -m pip install --user when uv is unavailable. If opensquilla is not on PATH after install (common on a fresh host where ~/.local/bin is not yet on PATH), run uv tool update-shell and open a new terminal; see Troubleshooting for details.

    Direct pip install ., uv tool install ., and VCS URL installs are low-level source-build paths, not substitutes for this installer. A local checkout works only after its Web UI has been built; a VCS URL checkout has no generated artifact and is intentionally rejected. Use this source installer or an official release wheel instead.

  3. (optional) Install advanced extras. Most channels — Feishu, Telegram, DingTalk, QQ, WeCom, Slack, and Discord — work from the base install. The opt-in extras are:

    • matrix — Matrix channel (pulls in matrix-nio)
    • matrix-e2e — Matrix channel with end-to-end encryption (requires libolm)
    • document-extras — PDF generation via WeasyPrint
    OPENSQUILLA_INSTALL_EXTRAS=matrix bash scripts/install_source.sh        # macOS / Linux
    
    powershell -ExecutionPolicy Bypass -File ./scripts/install_source.ps1 -Extras matrix   # Windows
    
  4. Configure and run — see Configuration.

Install from source — terminal prerequisites and installer options

Install prerequisites (Git, Git LFS, Node.js 22.12+ with npm, uv) from a terminal

Windows PowerShell:

winget install --id Git.Git -e
winget install --id GitHub.GitLFS -e
winget install --id OpenJS.NodeJS.LTS -e
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"
git lfs install

macOS (Homebrew):

brew install git git-lfs node uv
git lfs install

Debian / Ubuntu:

sudo apt update && sudo apt install -y git git-lfs curl
curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
sudo apt install -y nodejs
curl -LsSf https://astral.sh/uv/install.sh | sh
git lfs install

On Fedora use sudo dnf install -y git git-lfs; on Arch use sudo pacman -S --needed git git-lfs; install Node.js 22.12+ and npm from your distribution or nodejs.org, then install uv with the curl command above. PATH changes from these installers apply to new terminal sessions.

Installer environment variables and PATH checks

OPENSQUILLA_INSTALL_PROFILE=core   bash scripts/install_source.sh   # minimal runtime, no SquillaRouter
OPENSQUILLA_INSTALL_DRY_RUN=1      bash scripts/install_source.sh   # print the plan only

Verify which opensquilla your shell runs with command -v opensquilla (macOS/Linux) or where.exe opensquilla (Windows). If it is not on PATH, run uv tool update-shell. After reinstalling from a local checkout, restart the gateway so it loads the updated package.

Develop from source

Use this path when you are working on OpenSquilla's source code: making changes, running tests, or debugging behavior against this checkout. It is not the normal install path. Unlike Install from source, this path requires uv: uv sync creates a repository-local .venv, and uv run executes commands against the files in this checkout.

cd opensquilla-webui
npm ci
npm run build
cd ..
uv sync --extra recommended --extra dev
uv run opensquilla --help

Run npm run build again after changing Web UI sources. Standard wheel builds fail closed when the generated console is missing or stale; editable uv sync installs remain available for backend-only work.

The recommended extra includes SquillaRouter for development too; the dev extra installs the test, lint, and typecheck tools. Install additional extras into the same environment you run:

uv sync --extra recommended --extra dev --extra matrix
uv run opensquilla channels status matrix --json

In this mode, prefix every opensquilla command in Configuration with uv run. Do not debug a development checkout through a user-local opensquilla command — that command runs in a different Python environment.

Uninstall

Remove OpenSquilla with opensquilla uninstall. It keeps your data by default and removes only the program:

opensquilla uninstall --dry-run   # preview what would be removed and kept
opensquilla uninstall             # remove the program, keep your data

To delete data too, opt in explicitly:

opensquilla uninstall --purge-state    # sessions, logs, cache, scheduler, memory
opensquilla uninstall --purge-config   # config.toml and secrets (.env)
opensquilla uninstall --purge-all      # everything (asks you to type a confirmation)

The running gateway is drained and stopped first, deletion stays inside the OpenSquilla home, and Docker/desktop installs get guided removal steps instead. Desktop or OS app removal remains platform-specific; the CLI guidance does not remove a desktop app bundle. See docs/cli.md for the full reference.


Installation Privacy

OpenSquilla uses pseudonymous installation telemetry to estimate install counts, version adoption, and runtime compatibility. Data is sent on first gateway startup and once per OpenSquilla version. It also records content-free daily aggregates of completed top-level conversations and token usage by UTC date, and attempts to upload pending cumulative UTC-day snapshots to the telemetry service at startup and once per hour. OpenSquilla may also make passive update checks, including automatic desktop update checks at startup and, while the app remains open, at most once per day. Uploads use a short timeout and never block startup.

See PRIVACY.md for the full privacy policy covering local data, provider requests, network observability, logs, release downloads, and deletion.

What is sent:

The install_id is a local one-way SHA-256 digest derived from usable MAC addresses, then local IP addresses when no MAC is available, with a random persisted fallback. Raw MAC/IP values are not uploaded.

By default, requests sent directly to the official TokenRhythm HTTPS API may also carry the same pseudonymous, cross-session installation identifier in the optional X-OpenSquilla-Install-Id header. Only the exact official tokenrhythm.studio and api.tokenrhythm.studio HTTPS hosts on port 443 are eligible; custom proxies, OpenRouter, other providers, browser pages, redirected nonofficial targets, and returned image/CDN downloads are excluded. The raw MAC/IP values are never sent. The header is omitted if its background resolution is not ready or fails, so requests continue normally.

What is not sent: usernames, hostnames, paths, API keys, provider config, chat/session/memory/agent content, file names, or file contents. Source IP may be visible to HTTP servers at the transport layer, but is not part of the payload.

To disable non-user-initiated network observability before startup:

OPENSQUILLA_PRIVACY_DISABLE_NETWORK_OBSERVABILITY=true

or set:

[privacy]
disable_network_observability = true

That unified switch covers automatic install telemetry, daily aggregate usage telemetry, passive update checks, and automatic desktop update checks at startup and during long-running app sessions, as well as the TokenRhythm installation header. Explicit update-availability checks remain disabled while the unified or legacy opt-out is active. CI and test environments also suppress the installation header and installation telemetry automatically. Other user-initiated actions may still contact network services after user intent, including release downloads and configured providers, search, or channels.

Legacy opt-out environment variables remain honored:

OPENSQUILLA_TELEMETRY_DISABLED=true
OPENSQUILLA_UPDATE_CHECK_DISABLED=true

The legacy telemetry opt-out suppresses the TokenRhythm installation header; the update-check opt-out by itself does not. TokenRhythm must treat the header as optional and untrusted,

opensquilla (TokenRhythm/opensquilla)

Searching Database…

这是什么?OpenSquilla 是一个节省 token 的微内核 AI 智能体。它通过本地模型路由器,把每一轮对话交给能够胜任且成本最低的模型处理,同时在 CLI、Web UI 和聊天渠道等界面之间共享记忆、沙箱和网络搜索功能。
它是命令行工具、桌面应用,还是网页服务?三者兼有。同一套网关和对话轮次循环同时驱动桌面应用(Electron 加 Vue 控制台)、终端 CLI 和 Web UI,也可以运行在 Telegram、Slack、Discord 等聊天应用中。
我该怎么安装 OpenSquilla?最简单的方式是使用打包好的桌面安装程序(macOS 用 .dmg,Windows 用 .exe)。任何系统都可以运行 'uv tool install' 进行终端快速安装。也可以用 Git LFS 克隆仓库,然后运行安装脚本,从源码构建。
安装时需要 Node.js 或 Git 吗?只有从源码构建时才需要。从源码构建需要带 Git LFS 的 Git、用于编译 Vue Web UI 的 Node.js 22.12+/npm,以及 Python 3.12+ 和 uv。桌面安装程序和终端快速安装已经包含构建好的控制台,所以这两种方式完全不需要 Node.js 和 Git。
安装时有哪些需要注意的坑吗?目前发布的 Windows 安装程序还没有代码签名,SmartScreen 可能需要较长时间才会信任它。SquillaRouter 内置的 ONNX 运行时在 Windows 上需要 Visual C++ 运行库,在 macOS 上需要 libomp。缺少这些组件时 OpenSquilla 仍然可以运行,只是会改用直接的单模型路由,而不是智能路由器。
OpenSquilla 会向外发送哪些数据?首次启动以及每次版本变更时,它会发送假名化的安装遥测数据,包括单向 SHA-256 安装 ID、操作系统、Python 版本和安装方式。此外还会发送不含内容的每日汇总数据,即对话数量和 token 用量。原始 MAC 地址或 IP 地址从不上传。
SquillaRouter 是什么?SquillaRouter 是 OpenSquilla 的本地模型路由器。它借助 ONNX Runtime 和 LightGBM,在本地为每轮对话挑选能胜任且成本最低的模型。除非你设置了 OPENSQUILLAINSTALLPROFILE=core,否则默认会一并安装。
它能接入哪些大模型提供商?它的可插拔提供商层可以对接 TokenRhythm、OpenRouter、OpenAI、Anthropic、Ollama、DeepSeek、Gemini、Qwen/DashScope 以及 20 多家其他提供商,无需修改你的代码或配置结构。
我能把它连接到哪些聊天平台?开箱即用支持 Feishu、Telegram、DingTalk、QQ、WeCom、Slack 和 Discord。另外可以选装 Matrix 扩展,支持端到端加密。
我该怎么干净地卸载它?运行 'opensquilla uninstall' 即可只删除程序并保留数据。如果要连数据一起删除,需要显式传入对应的参数。Docker 和桌面版安装则会获得引导式卸载步骤。
Size
240.5 MB
Stars
7.1K
Age
5mo
Commits · 90 Days