← 开源
easylink-ai-open

tiri-agent

Tiri local agent backend and web shell built on agent-runtime.

AI EngineeringBring agent to usersBuild agent workflow (SDK)TypeScript
在 GitHub 打开
增长势头
+024 小时新增 Star0.0%
711
Star
121
Fork
+-9
本周
0
贡献者
创建于 2026-07-02 · 更新于 2026-10-13 · 今日第 14688 名

easylink-ai-open/tiri-agent 排名第 14,688,有 711 个星标。

同类别比较

easylink-ai-open/tiri-agent 排名第 14,688,此处有 8 个同类条目;SeanJ1ang/design-judge-skills 排名第 14,671。

同类别比较
名称排名指标
chujiezheng/chat_templates14,650
语言:
Jinja
星标数:
714
分叉数:
64
简介:
Chat Templates for 🤗 HuggingFace Large Language Models
yvann-ba/ComfyUI_Yvann-Nodes14,657
语言:
Python
星标数:
714
分叉数:
30
简介:
Audio Reactivity Nodes for ComfyUI 🔊 Create AI generated audio-driven animations
mckaywrigley/ai-brainstore14,665
语言:
TypeScript
星标数:
713
分叉数:
97
简介:
An experiment concept for an AI brain.
SeanJ1ang/design-judge-skills14,671
语言:
Python
星标数:
712
分叉数:
102
简介:
Evidence-driven Agent Skills for design award research, evaluation, award matching, entry writing, and submission readiness.
runesleo/claude-code-workflow14,722
语言:
Shell
星标数:
709
分叉数:
88
简介:
QuietHarness:Claude Code、Codex、Cursor 共用的轻量 AI 工作系统
Chaoses-Ib/ComfyScript14,727
语言:
Python
星标数:
708
分叉数:
47
简介:
A Python frontend and library for ComfyUI
Nanako0129/pilotfish14,729
语言:
Python
星标数:
708
分叉数:
44
Nomadcxx/opencode-cursor14,730
语言:
TypeScript
星标数:
708
分叉数:
94
简介:
Use Cursor Pro models in OpenCode via HTTP proxy with OAuth
关键参数与规格
关键参数与规格
参数值
语言TypeScript
类别AI Engineering
子类别Bring agent to users,Build agent workflow (SDK)
关键词Agent sandbox, Agent-ready APIs, Client integration, Prompt engineering
星标数711
分叉数121
贡献者0
创建日期2026-07-02
更新日期2026-10-13
1 天星标数0
7 天星标数-9
排名14,688
上次排名14,535
排名变化-153
7 天星标排名18,928
上次 7 天星标排名18,832
7 天星标排名变化-96
总星标排名14,710
上次总星标排名14,683
总星标排名变化-27
README 摘录

Tiri Agent Tiri is a local-first agent product shell built on the standalone core. It packages the runtime into a practical personal-agent experience: CLI chat, FastAPI APIs, a Next. js web shell, sandbox tools, channel integrations, local skills, and SQLite persistence. Highlights Local-first backend with durable SQLite sessions, settings, channel state, event streams, and outbox records. Runtime composition around , keeping product policy here and neutral agent mechanics in the sibling core package. CLI and web entry points

through the same configuration path. Local and Docker-backed sandbox tools for file access and shell execution. Prompt assembly from base identity, runtime environment, optional profile context, and local skill registry. Channel adapters for Telegram, Weixin/WeChat, and Feishu/Lark, including inbound listeners and proactive outbound messaging. | | | Base prompt, profile prompt, environment prompt, and skill index assembly. | | | Tool registry composition and concrete Tiri tool sets. | | | Local and Docker sandbox implementations exposed as runtime tools. | | | Provider adapters, listeners, gateway, targets, settings

, and outbox worker. | | | FastAPI app, SQLite storage, event queues, and local server runner. js web shell for Tiri-specific backend integration. | Top-level , , and are compatibility re-export modules. New implementation should live under the structured packages above. Quick Start Install the sibling runtime and this product repo into a local virtual environment: Configure a model: Run CLI chat: Start the local API and web shell: The server command starts: FastAPI at Next. | | | Optional file overriding the base system prompt

. | | | Optional local user/profile prompt file. | | | Local data directory, defaulting to when configured. | | | Collaboration mode, currently or . | CLI flags mirror the most common settings: Prompts And Skills Tiri builds the system prompt from: for the base identity, operating loop, tool rules, workspace rules, safety guidance, and voice. The runtime environment, such as , , or . If is unset, it defaults to when is configured, otherwise . Sandbox Tools Enable local workspace tools: Use Docker-backed shell execution while keeping the same mounted workspace

: The Docker backend keeps one container per Tiri session. The container name is derived from the session id, mounted workspace, and image, so resumed sessions reuse their sandbox container and later calls execute through . Sandbox tools currently include , , , and . Local Data And Channels Tiri stores local backend data in SQLite. By default, the durable database is: The database stores chat sessions, message history, event-stream records, local settings, channel settings, proactive targets, and channel outbox entries. Supported local channel providers

: Telegram long polling via the Bot API. Inbound channel events are routed through: When exposed beyond localhost, set an inbound token and send it as or : Background channel services are enabled by default and can be disabled with: Development Run Python tests: Run frontend checks: License Tiri Agent is licensed under the GNU Affero General Public License, version 3 only.

常见问题

记录了多少星标和分叉?

easylink-ai-open/tiri-agent 有 711 个星标和 121 个分叉。

仓库排名是多少?

easylink-ai-open/tiri-agent 排名第 14,688。

记录的语言和类别是什么?

easylink-ai-open/tiri-agent 有 711 个星标,语言为 TypeScript,类别为 AI Engineering。

哪个仓库排名最接近?

easylink-ai-open/tiri-agent 与 SeanJ1ang/design-judge-skills 比较,后者排名第 14,671,有 712 个星标。

README

Tiri Agent

Tiri is a local-first agent product shell built on the standalone agent-runtime core. It packages the runtime into a practical personal-agent experience: CLI chat, FastAPI APIs, a Next.js web shell, sandbox tools, channel integrations, local skills, and SQLite persistence.

Highlights

  • Local-first backend with durable SQLite sessions, settings, channel state, event streams, and outbox records.
  • Runtime composition around agent-runtime, keeping product policy here and neutral agent mechanics in the sibling core package.
  • CLI and web entry points through the same TiriBackend configuration path.
  • Local and Docker-backed sandbox tools for file access and shell execution.
  • Prompt assembly from base identity, runtime environment, optional profile context, and local skill registry.
  • Channel adapters for Telegram, Weixin/WeChat, and Feishu/Lark, including inbound listeners and proactive outbound messaging.

Repository Map

Path Purpose
agent/ TiriBackend, backend config, logging hooks, and collaboration modes.
prompts/ Base prompt, profile prompt, environment prompt, and skill index assembly.
tools/ Tool registry composition and concrete Tiri tool sets.
sandbox/ Local and Docker sandbox implementations exposed as runtime tools.
channels/ Provider adapters, listeners, gateway, targets, settings, and outbox worker.
server/ FastAPI app, SQLite storage, event queues, and local server runner.
cli/ Thin tiri command entrypoint.
web/ Next.js web shell for Tiri-specific backend integration.

Top-level backend.py, config.py, and collaboration.py are compatibility re-export modules. New implementation should live under the structured packages above.

Quick Start

Install the sibling runtime and this product repo into a local virtual environment:

uv venv --python 3.11 .venv
uv pip install -e ../agent-runtime -e ".[server]" --python .venv/bin/python
uv pip install pytest --python .venv/bin/python

Configure a model:

export TIRI_LLM_API=openai-chat-completions
export TIRI_MODEL=your-model-name
export TIRI_LLM_API_KEY=your-api-key
export TIRI_LLM_BASE_URL=https://api.openai.com/v1

Run CLI chat:

.venv/bin/tiri

Start the local API and web shell:

.venv/bin/tiri server start

The server command starts:

  • FastAPI at http://127.0.0.1:8000
  • Next.js at http://127.0.0.1:3000

To run only the FastAPI backend:

.venv/bin/tiri server start --no-web

Configuration

Variable Purpose
TIRI_LLM_API Provider API shape, such as openai-chat-completions.
TIRI_MODEL Model name. Required unless passed with --model.
TIRI_LLM_API_KEY Provider API key.
TIRI_LLM_BASE_URL Optional provider base URL.
TIRI_PROMPT_PATH Optional file overriding the base system prompt.
TIRI_PROFILE_PATH Optional local user/profile prompt file.
TIRI_SKILLS_PATH Optional local skills directory.
TIRI_DATA_DIR Local data directory, defaulting to ~/.tiri when configured.
TIRI_DB_PATH Explicit SQLite database path.
TIRI_COLLABORATION_MODE Collaboration mode, currently default or plan.

CLI flags mirror the most common settings:

.venv/bin/tiri --model your-model --data-dir /path/to/tiri-data
.venv/bin/tiri server start --db-path /path/to/tiri.sqlite

Prompts And Skills

Tiri builds the system prompt from:

  • prompts/base.py for the base identity, operating loop, tool rules, workspace rules, safety guidance, and voice.
  • The runtime environment, such as cli, web, or channel:.
  • Optional profile context from TIRI_PROFILE_PATH.
  • Optional skill registry context from TIRI_SKILLS_PATH.

If TIRI_SKILLS_PATH is unset, it defaults to ~/.tiri/skills when TIRI_DATA_DIR is configured, otherwise ./skills.

Sandbox Tools

Enable local workspace tools:

export TIRI_SANDBOX_ROOT=/path/to/workspace
export TIRI_SANDBOX_BACKEND=local

Use Docker-backed shell execution while keeping the same mounted workspace:

export TIRI_SANDBOX_BACKEND=local-docker
export TIRI_SANDBOX_DOCKER_IMAGE=python:3.12-slim

The Docker backend keeps one container per Tiri session. The container name is derived from the session id, mounted workspace, and image, so resumed sessions reuse their sandbox container and later run_shell calls execute through docker exec.

Sandbox tools currently include read_file, write_file, list_files, and run_shell.

Local Data And Channels

Tiri stores local backend data in SQLite. By default, the durable database is:

~/.tiri/tiri.db

The database stores chat sessions, message history, event-stream records, local settings, channel settings, proactive targets, and channel outbox entries.

Supported local channel providers:

  • Telegram long polling via the Bot API.
  • Weixin polling via the ilink bot API.
  • Feishu/Lark websocket via lark-oapi.

Inbound channel events are routed through:

POST /api/channels/inbound

When exposed beyond localhost, set an inbound token and send it as Authorization: Bearer ... or X-Tiri-Channel-Token:

export TIRI_CHANNEL_INBOUND_TOKEN=local-secret

Background channel services are enabled by default and can be disabled with:

export TIRI_CHANNEL_GATEWAY_ENABLED=false
export TIRI_CHANNEL_OUTBOX_ENABLED=false

Development

Run Python tests:

.venv/bin/python -m pytest tests -q

Run frontend checks:

cd web
npm run lint
npm run build

License

Tiri Agent is licensed under the GNU Affero General Public License, version 3 only. See LICENSE for details.

排名相邻
同类项目