@j-ho/agents-office 0.1.4 → 0.1.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +89 -48
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,90 +1,132 @@
|
|
|
1
1
|
# Agents Office
|
|
2
2
|
|
|
3
|
-
Claude Code
|
|
4
|
-
|
|
3
|
+
A Tauri desktop app that visualizes Claude Code's workflow as **office agents (Reader/Searcher/Writer/Editor/Runner/Tester/Planner/Support)** working in a pixel art office.
|
|
4
|
+
It watches local Claude logs (`$HOME/.claude/**`) and streams events to the frontend (PixiJS canvas + Inbox log panel).
|
|
5
5
|
|
|
6
6
|

|
|
7
7
|
|
|
8
|
-
##
|
|
9
|
-
-
|
|
10
|
-
- **Inbox
|
|
11
|
-
- **Watcher
|
|
12
|
-
|
|
13
|
-
##
|
|
14
|
-
|
|
8
|
+
## Key Features
|
|
9
|
+
- **Agent Visualization**: Displays agent states (Idle/Working/Thinking/Passing/Error) in pixel art style
|
|
10
|
+
- **Inbox Log**: Parses Claude log lines into `LogEntry` and displays recent items (up to 100)
|
|
11
|
+
- **Watcher Status**: Shows `Watching/Idle` status and session ID (event-based)
|
|
12
|
+
|
|
13
|
+
## Agent UI Legend (Expressions/Icons)
|
|
14
|
+
|
|
15
|
+
### Agent Types (Roles) & Colors
|
|
16
|
+
- **Reader**: Reads and summarizes input/file content (color `#60A5FA`)
|
|
17
|
+
- **Searcher**: Performs code/file/web searches (color `#38BDF8`)
|
|
18
|
+
- **Writer**: Creates new files/code (color `#4ADE80`)
|
|
19
|
+
- **Editor**: Modifies existing code (color `#22C55E`)
|
|
20
|
+
- **Runner**: Handles command execution (general Bash, etc.) (color `#FBBF24`)
|
|
21
|
+
- **Tester**: Handles test/build/validation execution (color `#F97316`)
|
|
22
|
+
- **Planner**: Manages todo/planning and task delegation (color `#F472B6`)
|
|
23
|
+
- **Support**: User questions/assistance role (color `#A78BFA`)
|
|
24
|
+
|
|
25
|
+
### Status (Idle/Working/Thinking/Passing/Error) Display
|
|
26
|
+
- **Status Indicator (dot next to head)**: Color changes based on status
|
|
27
|
+
- `idle`: `#6B7280`
|
|
28
|
+
- `working`: `#22C55E`
|
|
29
|
+
- `thinking`: `#3B82F6`
|
|
30
|
+
- `passing`: `#A855F7`
|
|
31
|
+
- `error`: `#EF4444`
|
|
32
|
+
- **Error Badge**: Red exclamation badge appears above head when in `error` state
|
|
33
|
+
- **Desk Monitor Screen**
|
|
34
|
+
- `idle`: Dark screen + scanlines
|
|
35
|
+
- `working`: Agent-colored code lines scrolling + cursor blinking
|
|
36
|
+
- `thinking`: Loading dots (3) + icon (circular "brain/gear" style)
|
|
37
|
+
- `passing`: Right-moving arrow + transfer icon
|
|
38
|
+
- `error`: Red flash + X mark
|
|
39
|
+
|
|
40
|
+
### Expression (Mood) Display
|
|
41
|
+
Expressions are separate from "status" - eyes/eyebrows/mouth area change based on mood.
|
|
42
|
+
- **neutral**: Default expression
|
|
43
|
+
- **focused**: Concentrated state from recent tool call (slightly lowered eyebrows, slight smile)
|
|
44
|
+
- **stressed**: Tense state after/during error (worried eyebrows + sweat drop)
|
|
45
|
+
- **blocked**: Blocked state from rate limit, etc. (closed eyes + Z mark)
|
|
46
|
+
|
|
47
|
+
### Error/Rate Limit (Waiting) Additional Display
|
|
48
|
+
- **Red Warning Light**: When an error is detected, the warning light next to the desk blinks
|
|
49
|
+
- **"On Vacation" Sign + Wait Indicator**: When blocked by rate limit, displays "On Vacation" sign with hourglass/dots (waiting)
|
|
50
|
+
|
|
51
|
+
### Speech Bubble (Task Summary)
|
|
52
|
+
- Speech bubble appears when not `idle`, showing tool call name summarized (e.g., `Read` → "Reading file")
|
|
53
|
+
- Long text is truncated, and bubble auto-hides after no updates for a period
|
|
54
|
+
|
|
55
|
+
## Requirements
|
|
56
|
+
- **Node.js**: 18 or higher recommended
|
|
15
57
|
- **Rust**: stable toolchain
|
|
16
|
-
- **Tauri prerequisites**: OS
|
|
58
|
+
- **Tauri prerequisites**: OS-specific build dependencies required. See [Tauri prerequisites](https://tauri.app/start/prerequisites/) for details.
|
|
17
59
|
|
|
18
|
-
##
|
|
60
|
+
## Running the App
|
|
19
61
|
|
|
20
|
-
### 0)
|
|
62
|
+
### 0) Run directly with npx (macOS, recommended)
|
|
21
63
|
|
|
22
|
-
|
|
23
|
-
|
|
64
|
+
You can run the app without local Rust/Tauri toolchain using the command below.
|
|
65
|
+
The actual app binary is downloaded from GitHub Releases and cached for faster subsequent runs.
|
|
24
66
|
|
|
25
67
|
```bash
|
|
26
68
|
npx @j-ho/agents-office
|
|
27
69
|
```
|
|
28
70
|
|
|
29
|
-
-
|
|
71
|
+
- **Pin specific version**:
|
|
30
72
|
|
|
31
73
|
```bash
|
|
32
74
|
npx @j-ho/agents-office --version 0.1.2
|
|
33
75
|
```
|
|
34
76
|
|
|
35
|
-
-
|
|
77
|
+
- **Force cache refresh**:
|
|
36
78
|
|
|
37
79
|
```bash
|
|
38
80
|
npx @j-ho/agents-office --force
|
|
39
81
|
```
|
|
40
82
|
|
|
41
|
-
#### Gatekeeper
|
|
42
|
-
|
|
83
|
+
#### Gatekeeper Note (macOS)
|
|
84
|
+
If the downloaded app is blocked, you may need to select "Open Anyway" in **System Settings → Privacy & Security**.
|
|
43
85
|
|
|
44
|
-
### 1)
|
|
86
|
+
### 1) Install Dependencies
|
|
45
87
|
|
|
46
88
|
```bash
|
|
47
89
|
npm install
|
|
48
90
|
```
|
|
49
91
|
|
|
50
|
-
### 2)
|
|
92
|
+
### 2) Run in Browser (Development)
|
|
51
93
|
|
|
52
94
|
```bash
|
|
53
95
|
npm run dev
|
|
54
96
|
```
|
|
55
97
|
|
|
56
|
-
### 3)
|
|
98
|
+
### 3) Run as Desktop App (Tauri Development)
|
|
57
99
|
|
|
58
100
|
```bash
|
|
59
101
|
npm run tauri:dev
|
|
60
102
|
```
|
|
61
103
|
|
|
62
|
-
##
|
|
104
|
+
## Build
|
|
63
105
|
|
|
64
|
-
###
|
|
106
|
+
### Web Build
|
|
65
107
|
|
|
66
108
|
```bash
|
|
67
109
|
npm run build
|
|
68
110
|
```
|
|
69
111
|
|
|
70
|
-
###
|
|
112
|
+
### Desktop (Tauri) Build
|
|
71
113
|
|
|
72
114
|
```bash
|
|
73
115
|
npm run tauri:build
|
|
74
116
|
```
|
|
75
117
|
|
|
76
|
-
##
|
|
77
|
-
|
|
118
|
+
## Permissions/Security (Important)
|
|
119
|
+
This app uses Tauri capabilities for **local file read permissions** to access Claude logs.
|
|
78
120
|
|
|
79
|
-
-
|
|
80
|
-
-
|
|
81
|
-
-
|
|
82
|
-
-
|
|
83
|
-
-
|
|
121
|
+
- **Paths accessed**: `$HOME/.claude/**`
|
|
122
|
+
- Primarily watches `$HOME/.claude/debug` and `$HOME/.claude/projects` subdirectories
|
|
123
|
+
- **File types read**: `.txt`, `.jsonl`, `.json`
|
|
124
|
+
- **Behavior**: Only reads "newly added lines" from files and emits events to the frontend
|
|
125
|
+
- **Note**: Logs may contain sensitive information. The app processes locally only, but be careful not to include in screen shares/screenshots.
|
|
84
126
|
|
|
85
|
-
|
|
127
|
+
Related settings can be found in [`src-tauri/capabilities/default.json`](./src-tauri/capabilities/default.json).
|
|
86
128
|
|
|
87
|
-
##
|
|
129
|
+
## Architecture Overview
|
|
88
130
|
|
|
89
131
|
```mermaid
|
|
90
132
|
flowchart LR
|
|
@@ -94,22 +136,21 @@ flowchart LR
|
|
|
94
136
|
frontend --> stores[zustandStores]
|
|
95
137
|
```
|
|
96
138
|
|
|
97
|
-
###
|
|
98
|
-
- Rust
|
|
99
|
-
- `app-event
|
|
100
|
-
- `LogEntry`:
|
|
101
|
-
- `AgentUpdate`:
|
|
102
|
-
- `WatcherStatus`:
|
|
139
|
+
### Event Flow (Summary)
|
|
140
|
+
- Rust watcher detects file changes and parses log lines
|
|
141
|
+
- Sends events to frontend via `app-event`
|
|
142
|
+
- `LogEntry`: Add inbox log entry
|
|
143
|
+
- `AgentUpdate`: Update agent status/task display
|
|
144
|
+
- `WatcherStatus`: Update top status (Watching/Idle)
|
|
103
145
|
|
|
104
|
-
##
|
|
105
|
-
`npx @j-ho/agents-office
|
|
146
|
+
## Release Asset Specification (for npx execution)
|
|
147
|
+
`npx @j-ho/agents-office` downloads macOS build artifacts from GitHub Releases (`awesomelon/agents-office`).
|
|
106
148
|
|
|
107
|
-
-
|
|
108
|
-
-
|
|
109
|
-
- zip
|
|
110
|
-
- (
|
|
111
|
-
- `Agents-Office-macos.zip.sha256`
|
|
149
|
+
- **Tag convention**: `vX.Y.Z` (e.g., `v0.1.2`)
|
|
150
|
+
- **Recommended asset name**: `Agents-Office-macos.zip`
|
|
151
|
+
- The zip should contain `Agents Office.app/` bundle inside
|
|
152
|
+
- (Optional) Integrity verification:
|
|
153
|
+
- Upload `Agents-Office-macos.zip.sha256` or `checksums.txt` alongside for CLI sha256 verification
|
|
112
154
|
|
|
113
|
-
##
|
|
155
|
+
## License
|
|
114
156
|
MIT
|
|
115
|
-
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@j-ho/agents-office",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.5",
|
|
4
4
|
"description": "Claude Code visualization as agents working in an office",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "j-ho",
|
|
@@ -36,7 +36,8 @@
|
|
|
36
36
|
"preview": "vite preview",
|
|
37
37
|
"tauri": "tauri",
|
|
38
38
|
"tauri:dev": "tauri dev",
|
|
39
|
-
"tauri:build": "tauri build"
|
|
39
|
+
"tauri:build": "tauri build",
|
|
40
|
+
"zip": "ditto -c -k --keepParent 'src-tauri/target/release/bundle/macos/Agents Office.app' 'Agents-Office-macos.zip'"
|
|
40
41
|
},
|
|
41
42
|
"dependencies": {
|
|
42
43
|
"@pixi/react": "^7.1.2",
|