████████╗██╗██╗ ██╗
╚══██╔══╝██║╚██╗██╔╝
██║ ██║ ╚███╔╝
██║ ██║ ██╔██╗
██║ ██║██╔╝ ██╗
╚═╝ ╚═╝╚═╝ ╚═╝
[ Tiwater Agent Harness Framework ]
The Tiwater Agent Harness Framework. Built for serious developers who need industrial-grade reliability, multi-tenant bot management, and drop-dead gorgeous interactive experiences.
Tix is a modular, high-performance foundation for building AI agents that live where your team works: Feishu (Lark), DingTalk, Discord, and beyond. It doesn't just "chat"—it manages complex tasks through a unified command hub and rich interactive cards.
While other frameworks focus on generic chat, Tix is engineered for the enterprise:
- 🚀 Industrial-Grade Channels: Real-world Feishu and DingTalk integrations with automatic WebSocket reconnection (Stream Mode), multi-account routing, and rich text parsing.
- 🎨 Interactive Card Native: Say goodbye to walls of Markdown text. Tix renders data into beautiful, actionable UI components directly in your chat app.
- ⚡ Zero-Latency Slash Commands: A dedicated interceptor bypasses the LLM for system commands (
/status,/reload), giving you instant feedback. - 🏗️ Unified Abstract Architecture: A rock-solid
AbstractChannelbase makes adding new platforms a matter of minutes, not days. - 🧠 Brain-Body Sync: Built on top of the latest Claude Agent SDK, separating high-level reasoning from low-level execution.
Tix comes pre-loaded with essential tools for the modern agent:
web-search: Synthesized real-time intelligence via Perplexity (Sonar Pro) or Serper.web-content: Ultra-clean Markdown extraction from any URL (powered by Jina Reader).browser: Full visual automation with Playwright (Chromium) for screenshots and complex interactions.office: Cross-platform Word and Excel manipulation.github: GitHub-native operations viagh, with built-in auth helpers.
npm install -g tixUse ~/.tix/config.yaml as the single runtime config file:
mkdir -p ~/.tix
cp ./config.example.yaml ~/.tix/config.yamlThen edit ~/.tix/config.yaml with your channel + LLM credentials.
Before exposing Tix beyond localhost, set a real admin token and explicit browser allowlist:
export HTTP_API_KEY="replace-with-a-long-random-secret"
export ALLOWED_ORIGINS='^https://app\.example\.com$'HTTP_API_KEYprotects node admin/API surfacesALLOWED_ORIGINSprevents arbitrary browser origins from calling the node API- if
HTTP_API_KEYis unset, Tix falls back to loopback-only admin access for local development - in that mode, the HTTP listener binds to
127.0.0.1instead of a wider interface - this loopback fallback is a development convenience, not a production mode
tix startYou can test agent behavior instantly from the command line without setting up external chat platforms:
pnpm chat "Hello!" --agent my-agentThis connects to the local SSE stream and outputs the agent's response in real-time.
Skill auth convenience commands:
tix skills auth status
tix skills auth login github
tix skills auth logout githubThis repository is now set up for separate container deployments of the public gateway and the background node service on Render:
packages/gateway/Dockerfilebuilds the public gateway container.packages/computer/Dockerfilebuilds the background node container with Chrome included for browser automation.render.yamlwires the node to the gateway over Render's private network.
Deploy the Blueprint, then point your consumer app to the gateway service URL
and send Authorization: Bearer <TIX_GATEWAY_API_KEY> on every request. The node
service should stay private. See docs/INTEGRATING.md for the end-to-end flow.
If you configure Render services manually instead of syncing the Blueprint, set
the public web service Dockerfile path to packages/gateway/Dockerfile and the
background worker service Dockerfile path to packages/computer/Dockerfile.
The node service also needs HTTP_API_KEY configured so it binds 0.0.0.0 on
Render; the Blueprint now generates that value automatically.
Type commands directly in Feishu/DingTalk or your custom ChatUI:
/status- View real-time health of all bot instances in a beautiful dashboard card./help- Show available skills and instructions./web <url>- Instantly grab and summarize webpage content.
Tix uses a tri-tier architecture designed for extensibility:
- Standardized Transport: Every channel inherits from
AbstractChannel<T>, enforcing a unified JID format:{channel}:{app_id}:{chat_id}. - Logic Engine: Powered by
AgentComputer, an object-oriented execution loop that manages persona, memory, and tool use. - Unified Management: Management is done through the conversation. No clunky web dashboards required—your agent is its own administrator.
MIT © tiwater