# wkbin/taixu architecture

> Architecture diagram of the GitHub repository wkbin/taixu, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-28). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/wkbin/taixu
- Repository: https://github.com/wkbin/taixu

## Overview

TaiXu is an Android Linux runtime and AI automation workspace. The main journey is user intent through Agent planning and approved tool execution toward files, processes, or build artifacts; workflows add persistence, scheduling, and human approval. The graph also retains major documented capabilities such as terminal, browser, Git, MCP, and host automation. Some subsystems are documented in the README but their implementation was not sampled, so their internal wiring is intentionally limited.

Main entry points: [`harness/src/main/java/top/wkbin/taixu/harness`](https://github.com/wkbin/taixu/tree/main/harness/src/main/java/top/wkbin/taixu/harness) (Agent Harness), [`runtime`](https://github.com/wkbin/taixu/tree/main/runtime) (Linux Runtime), [`core/database/src/main/java/top/wkbin/taixu/core/database/AppDatabase.kt`](https://github.com/wkbin/taixu/blob/main/core/database/src/main/java/top/wkbin/taixu/core/database/AppDatabase.kt) (Room Persistence), [`feature/terminal/src/main/java/top/wkbin/taixu/ui/terminal/TerminalScreen.kt`](https://github.com/wkbin/taixu/blob/main/feature/terminal/src/main/java/top/wkbin/taixu/ui/terminal/TerminalScreen.kt) (PTY Terminal)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_interaction["User Interaction"]
  node_navigation["App Navigation<br/>[TaiXuNavHost.kt]"]
  node_chat["Agent Chat<br/>[ChatScreen.kt]"]
  node_storage_ui["Storage Management"]
end

subgraph group_agent["Agent and Workflows"]
  node_harness["Agent Harness"]
  node_approval["Approval Policy"]
  node_workflow["Workflow Editor"]
  node_workflow_runtime["Workflow Scheduling"]
end

subgraph group_runtime["Linux Workspace"]
  node_linux["Linux Runtime"]
  node_terminal["PTY Terminal<br/>[TerminalScreen.kt]"]
  node_native_pty["Native PTY<br/>[pty_native.c]"]
  node_workspace["Project Workspace"]
  node_local_llm["Local Model Runtime<br/>[LocalLlmManager.kt]"]
  node_storage_runtime["Storage Scanner<br/>[StorageManager.kt]"]
end

subgraph group_integrations["Browser and Integrations"]
  node_model_api(("Model Services"))
  node_git["Git Workbench<br/>[GitManager.kt]"]
  node_browser_ui["Browser UI<br/>[BrowserScreen.kt]"]
  node_browser_engine["Browser Engine"]
  node_mcp["MCP Tools"]
  node_shizuku["Shizuku Host"]
end

subgraph group_state["Persistence and Services"]
  node_database[("Room Persistence<br/>[AppDatabase.kt]")]
  node_runtime_service["Runtime Service"]
  node_agent_service["Agent Service"]
end

node_user(("User"))
node_host_android(("Android Host"))

node_user -->|"opens"| node_navigation
node_navigation -->|"routes to"| node_chat
node_chat -->|"sends prompts"| node_harness
node_harness -->|"requests completions"| node_model_api
node_harness -->|"checks policy"| node_approval
node_approval -->|"records approvals"| node_database
node_harness -->|"runs tools"| node_linux
node_harness -->|"invokes tools"| node_mcp
node_harness -->|"persists sessions"| node_database
node_user -->|"configures tasks"| node_workflow
node_workflow -->|"persists workflows"| node_database
node_workflow_runtime -->|"loads schedules"| node_database
node_workflow_runtime -->|"dispatches runs"| node_harness
node_user -->|"opens terminal"| node_terminal
node_terminal -->|"opens sessions"| node_linux
node_terminal -->|"uses JNI"| node_native_pty
node_user -->|"creates projects"| node_workspace
node_user -->|"manages repositories"| node_git
node_user -->|"browses pages"| node_browser_ui
node_browser_ui -->|"controls tabs"| node_browser_engine
node_browser_engine -->|"uses WebView"| node_host_android
node_user -->|"imports models"| node_local_llm
node_local_llm -->|"starts inference"| node_linux
node_user -->|"reviews usage"| node_storage_ui
node_storage_ui -->|"scans and cleans"| node_storage_runtime
node_runtime_service -->|"keeps runtime active"| node_linux
node_agent_service -->|"supports background runs"| node_harness
node_shizuku -.->|"executes host commands"| node_host_android

click node_navigation "https://github.com/wkbin/taixu/blob/main/feature/navigation/src/main/java/top/wkbin/taixu/ui/navigation/TaiXuNavHost.kt"
click node_chat "https://github.com/wkbin/taixu/blob/main/feature/chat/src/main/java/top/wkbin/taixu/ui/chat/ChatScreen.kt"
click node_harness "https://github.com/wkbin/taixu/tree/main/harness/src/main/java/top/wkbin/taixu/harness"
click node_approval "https://github.com/wkbin/taixu/blob/main/harness/src/main/java/top/wkbin/taixu/harness/ApprovalPolicyEngine.kt"
click node_workflow "https://github.com/wkbin/taixu/blob/main/feature/workflow/src/main/java/top/wkbin/taixu/ui/workflow/WorkflowViewModel.kt"
click node_workflow_runtime "https://github.com/wkbin/taixu/blob/main/app/src/main/java/top/wkbin/taixu/workflow/WorkflowScheduleWorker.kt"
click node_database "https://github.com/wkbin/taixu/blob/main/core/database/src/main/java/top/wkbin/taixu/core/database/AppDatabase.kt"
click node_linux "https://github.com/wkbin/taixu/tree/main/runtime"
click node_terminal "https://github.com/wkbin/taixu/blob/main/feature/terminal/src/main/java/top/wkbin/taixu/ui/terminal/TerminalScreen.kt"
click node_native_pty "https://github.com/wkbin/taixu/blob/main/app/src/main/cpp/pty_native.c"
click node_workspace "https://github.com/wkbin/taixu/blob/main/project-template/src/main/java/top/wkbin/taixu/template/ProjectTemplateEngine.kt"
click node_git "https://github.com/wkbin/taixu/blob/main/feature/git/src/main/java/top/wkbin/taixu/ui/git/GitManager.kt"
click node_browser_ui "https://github.com/wkbin/taixu/blob/main/feature/browser/src/main/java/top/wkbin/taixu/ui/browser/BrowserScreen.kt"
click node_browser_engine "https://github.com/wkbin/taixu/blob/main/runtime/browser/src/main/java/top/wkbin/taixu/runtime/browser/engine/AndroidInAppBrowserEngine.kt"
click node_mcp "https://github.com/wkbin/taixu/tree/main/harness"
click node_local_llm "https://github.com/wkbin/taixu/blob/main/runtime/src/main/java/top/wkbin/taixu/runtime/LocalLlmManager.kt"
click node_storage_ui "https://github.com/wkbin/taixu/blob/main/feature/settings/src/main/java/top/wkbin/taixu/ui/settings/StorageUsageScreen.kt"
click node_storage_runtime "https://github.com/wkbin/taixu/blob/main/runtime/src/main/java/top/wkbin/taixu/runtime/StorageManager.kt"
click node_runtime_service "https://github.com/wkbin/taixu/blob/main/app/src/main/java/top/wkbin/taixu/runtime/service/RuntimeForegroundService.kt"
click node_agent_service "https://github.com/wkbin/taixu/blob/main/app/src/main/java/top/wkbin/taixu/service/AgentForegroundService.kt"
click node_shizuku "https://github.com/wkbin/taixu/blob/main/runtime/src/main/java/top/wkbin/taixu/runtime/privilege/ShizukuHostUserService.kt"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_navigation,node_chat,node_storage_ui,node_user toneBlue
class node_harness,node_approval,node_workflow,node_workflow_runtime toneAmber
class node_linux,node_terminal,node_native_pty,node_workspace,node_local_llm,node_storage_runtime toneMint
class node_model_api,node_git,node_browser_ui,node_browser_engine,node_mcp,node_shizuku toneRose
class node_database,node_runtime_service,node_agent_service,node_host_android toneIndigo
```

## Components

### User Interaction

- [App Navigation](https://github.com/wkbin/taixu/blob/main/feature/navigation/src/main/java/top/wkbin/taixu/ui/navigation/TaiXuNavHost.kt): `feature/navigation/src/main/java/top/wkbin/taixu/ui/navigation/TaiXuNavHost.kt`
- [Agent Chat](https://github.com/wkbin/taixu/blob/main/feature/chat/src/main/java/top/wkbin/taixu/ui/chat/ChatScreen.kt): `feature/chat/src/main/java/top/wkbin/taixu/ui/chat/ChatScreen.kt`
- [Storage Management](https://github.com/wkbin/taixu/blob/main/feature/settings/src/main/java/top/wkbin/taixu/ui/settings/StorageUsageScreen.kt): `feature/settings/src/main/java/top/wkbin/taixu/ui/settings/StorageUsageScreen.kt`

### Agent and Workflows

- [Agent Harness](https://github.com/wkbin/taixu/tree/main/harness/src/main/java/top/wkbin/taixu/harness): `harness/src/main/java/top/wkbin/taixu/harness`
- [Approval Policy](https://github.com/wkbin/taixu/blob/main/harness/src/main/java/top/wkbin/taixu/harness/ApprovalPolicyEngine.kt): `harness/src/main/java/top/wkbin/taixu/harness/ApprovalPolicyEngine.kt`
- [Workflow Editor](https://github.com/wkbin/taixu/blob/main/feature/workflow/src/main/java/top/wkbin/taixu/ui/workflow/WorkflowViewModel.kt): `feature/workflow/src/main/java/top/wkbin/taixu/ui/workflow/WorkflowViewModel.kt`
- [Workflow Scheduling](https://github.com/wkbin/taixu/blob/main/app/src/main/java/top/wkbin/taixu/workflow/WorkflowScheduleWorker.kt): `app/src/main/java/top/wkbin/taixu/workflow/WorkflowScheduleWorker.kt`

### Linux Workspace

- [Linux Runtime](https://github.com/wkbin/taixu/tree/main/runtime): `runtime`
- [PTY Terminal](https://github.com/wkbin/taixu/blob/main/feature/terminal/src/main/java/top/wkbin/taixu/ui/terminal/TerminalScreen.kt): `feature/terminal/src/main/java/top/wkbin/taixu/ui/terminal/TerminalScreen.kt`
- [Native PTY](https://github.com/wkbin/taixu/blob/main/app/src/main/cpp/pty_native.c): `app/src/main/cpp/pty_native.c`
- [Project Workspace](https://github.com/wkbin/taixu/blob/main/project-template/src/main/java/top/wkbin/taixu/template/ProjectTemplateEngine.kt): `project-template/src/main/java/top/wkbin/taixu/template/ProjectTemplateEngine.kt`
- [Local Model Runtime](https://github.com/wkbin/taixu/blob/main/runtime/src/main/java/top/wkbin/taixu/runtime/LocalLlmManager.kt): `runtime/src/main/java/top/wkbin/taixu/runtime/LocalLlmManager.kt`
- [Storage Scanner](https://github.com/wkbin/taixu/blob/main/runtime/src/main/java/top/wkbin/taixu/runtime/StorageManager.kt): `runtime/src/main/java/top/wkbin/taixu/runtime/StorageManager.kt`

### Browser and Integrations

- **Model Services**
- [Git Workbench](https://github.com/wkbin/taixu/blob/main/feature/git/src/main/java/top/wkbin/taixu/ui/git/GitManager.kt): `feature/git/src/main/java/top/wkbin/taixu/ui/git/GitManager.kt`
- [Browser UI](https://github.com/wkbin/taixu/blob/main/feature/browser/src/main/java/top/wkbin/taixu/ui/browser/BrowserScreen.kt): `feature/browser/src/main/java/top/wkbin/taixu/ui/browser/BrowserScreen.kt`
- [Browser Engine](https://github.com/wkbin/taixu/blob/main/runtime/browser/src/main/java/top/wkbin/taixu/runtime/browser/engine/AndroidInAppBrowserEngine.kt): `runtime/browser/src/main/java/top/wkbin/taixu/runtime/browser/engine/AndroidInAppBrowserEngine.kt`
- [MCP Tools](https://github.com/wkbin/taixu/tree/main/harness): `harness`
- [Shizuku Host](https://github.com/wkbin/taixu/blob/main/runtime/src/main/java/top/wkbin/taixu/runtime/privilege/ShizukuHostUserService.kt): `runtime/src/main/java/top/wkbin/taixu/runtime/privilege/ShizukuHostUserService.kt`

### Persistence and Services

- [Room Persistence](https://github.com/wkbin/taixu/blob/main/core/database/src/main/java/top/wkbin/taixu/core/database/AppDatabase.kt): `core/database/src/main/java/top/wkbin/taixu/core/database/AppDatabase.kt`
- [Runtime Service](https://github.com/wkbin/taixu/blob/main/app/src/main/java/top/wkbin/taixu/runtime/service/RuntimeForegroundService.kt): `app/src/main/java/top/wkbin/taixu/runtime/service/RuntimeForegroundService.kt`
- [Agent Service](https://github.com/wkbin/taixu/blob/main/app/src/main/java/top/wkbin/taixu/service/AgentForegroundService.kt): `app/src/main/java/top/wkbin/taixu/service/AgentForegroundService.kt`

### Other components

- **User**
- **Android Host**

## Connections

- User → App Navigation: opens
- App Navigation → Agent Chat: routes to
- Agent Chat → Agent Harness: sends prompts
- Agent Harness → Model Services: requests completions
- Agent Harness → Approval Policy: checks policy
- Approval Policy → Room Persistence: records approvals
- Agent Harness → Linux Runtime: runs tools
- Agent Harness → MCP Tools: invokes tools
- Agent Harness → Room Persistence: persists sessions
- User → Workflow Editor: configures tasks
- Workflow Editor → Room Persistence: persists workflows
- Workflow Scheduling → Room Persistence: loads schedules
- Workflow Scheduling → Agent Harness: dispatches runs
- User → PTY Terminal: opens terminal
- PTY Terminal → Linux Runtime: opens sessions
- PTY Terminal → Native PTY: uses JNI
- User → Project Workspace: creates projects
- User → Git Workbench: manages repositories
- User → Browser UI: browses pages
- Browser UI → Browser Engine: controls tabs
- Browser Engine → Android Host: uses WebView
- User → Local Model Runtime: imports models
- Local Model Runtime → Linux Runtime: starts inference
- User → Storage Management: reviews usage
- Storage Management → Storage Scanner: scans and cleans
- Runtime Service → Linux Runtime: keeps runtime active
- Agent Service → Agent Harness: supports background runs
- Shizuku Host → Android Host: executes host commands
