junis 0.1.0
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 +162 -0
- package/dist/cli/index.d.ts +1 -0
- package/dist/cli/index.js +987 -0
- package/dist/server/mcp.js +793 -0
- package/dist/server/stdio.js +549 -0
- package/package.json +36 -0
package/README.md
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# junis
|
|
2
|
+
|
|
3
|
+
[](https://www.npmjs.com/package/junis)
|
|
4
|
+
[](./LICENSE)
|
|
5
|
+
|
|
6
|
+
Full device control for AI agents via MCP. Run a local MCP server or connect to the cloud so any AI agent can execute commands, manage files, control browsers, and more on your machine.
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## Features
|
|
11
|
+
|
|
12
|
+
- **Zero-config local mode** — `npx junis --local` and you're live
|
|
13
|
+
- **Cloud relay mode** — connect via `wss://api.junis.ai` for remote access
|
|
14
|
+
- **File & shell tools** — read, write, search, execute, manage processes
|
|
15
|
+
- **Browser automation** — navigate, click, type, screenshot, PDF via Playwright
|
|
16
|
+
- **MCP-native** — works with Claude Code, Claude Desktop, and any MCP client
|
|
17
|
+
- **TypeScript** — built on `@modelcontextprotocol/sdk`
|
|
18
|
+
|
|
19
|
+
---
|
|
20
|
+
|
|
21
|
+
## Quick Start
|
|
22
|
+
|
|
23
|
+
### Local Mode (no account required)
|
|
24
|
+
|
|
25
|
+
```bash
|
|
26
|
+
npx junis --local
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Starts an MCP server on `http://localhost:3000`. Point your MCP client at it and start using tools immediately.
|
|
30
|
+
|
|
31
|
+
### Cloud Mode
|
|
32
|
+
|
|
33
|
+
```bash
|
|
34
|
+
npx junis
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
On first run, opens a browser for OAuth login. After authentication, your device connects to `wss://api.junis.ai` and is ready for remote AI agent sessions.
|
|
38
|
+
|
|
39
|
+
---
|
|
40
|
+
|
|
41
|
+
## CLI Reference
|
|
42
|
+
|
|
43
|
+
```
|
|
44
|
+
Usage: npx junis [options] [command]
|
|
45
|
+
|
|
46
|
+
Options:
|
|
47
|
+
--local Run MCP server locally without cloud authentication
|
|
48
|
+
--port <port> Port for local MCP server (default: 3000)
|
|
49
|
+
--reset Reset saved credentials and re-authenticate
|
|
50
|
+
|
|
51
|
+
Commands:
|
|
52
|
+
logout Remove stored credentials
|
|
53
|
+
status Show current connection and device status
|
|
54
|
+
```
|
|
55
|
+
|
|
56
|
+
### Examples
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
# Start local MCP server on default port
|
|
60
|
+
npx junis --local
|
|
61
|
+
|
|
62
|
+
# Start local MCP server on custom port
|
|
63
|
+
npx junis --local --port 8080
|
|
64
|
+
|
|
65
|
+
# Re-authenticate (clear saved token)
|
|
66
|
+
npx junis --reset
|
|
67
|
+
|
|
68
|
+
# Check connection status
|
|
69
|
+
npx junis status
|
|
70
|
+
|
|
71
|
+
# Log out
|
|
72
|
+
npx junis logout
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
---
|
|
76
|
+
|
|
77
|
+
## Tools
|
|
78
|
+
|
|
79
|
+
### File & Shell
|
|
80
|
+
|
|
81
|
+
| Tool | Description |
|
|
82
|
+
|------|-------------|
|
|
83
|
+
| `execute_command` | Run shell commands and return stdout/stderr |
|
|
84
|
+
| `read_file` | Read file contents |
|
|
85
|
+
| `write_file` | Write or overwrite a file |
|
|
86
|
+
| `list_directory` | List files and directories |
|
|
87
|
+
| `search_code` | Search for text patterns across files |
|
|
88
|
+
| `list_processes` | List running processes |
|
|
89
|
+
| `kill_process` | Kill a process by PID |
|
|
90
|
+
|
|
91
|
+
### Browser (requires Playwright)
|
|
92
|
+
|
|
93
|
+
| Tool | Description |
|
|
94
|
+
|------|-------------|
|
|
95
|
+
| `browser_navigate` | Navigate to a URL |
|
|
96
|
+
| `browser_click` | Click an element by selector |
|
|
97
|
+
| `browser_type` | Type text into an input |
|
|
98
|
+
| `browser_screenshot` | Take a screenshot of the page |
|
|
99
|
+
| `browser_snapshot` | Capture DOM snapshot for accessibility |
|
|
100
|
+
| `browser_evaluate` | Execute JavaScript in the page |
|
|
101
|
+
| `browser_pdf` | Save the page as a PDF |
|
|
102
|
+
|
|
103
|
+
> Playwright is optional. If not installed, browser tools emit a warning instead of crashing.
|
|
104
|
+
|
|
105
|
+
### Notebook (requires Jupyter)
|
|
106
|
+
|
|
107
|
+
| Tool | Description |
|
|
108
|
+
|------|-------------|
|
|
109
|
+
| `notebook_read` | Read Jupyter notebook cells |
|
|
110
|
+
| `notebook_edit_cell` | Edit a specific cell in a notebook |
|
|
111
|
+
| `notebook_execute` | Execute notebook via nbconvert |
|
|
112
|
+
|
|
113
|
+
> Install Jupyter: `pip install jupyter`
|
|
114
|
+
|
|
115
|
+
### Device (macOS / Linux / Windows)
|
|
116
|
+
|
|
117
|
+
| Tool | Description |
|
|
118
|
+
|------|-------------|
|
|
119
|
+
| `screen_capture` | Capture a screenshot using OS native tools |
|
|
120
|
+
| `camera_capture` | Take a photo using the webcam |
|
|
121
|
+
| `notification_send` | Send an OS notification |
|
|
122
|
+
| `clipboard_read` | Read clipboard contents |
|
|
123
|
+
| `clipboard_write` | Write text to clipboard |
|
|
124
|
+
|
|
125
|
+
> macOS: `brew install imagesnap` for camera capture
|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
## Claude Code Integration
|
|
130
|
+
|
|
131
|
+
Register junis as a stdio MCP server so Claude Code can launch it automatically:
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
claude mcp add junis node /Users/leehyeonjin/development/junis-mcp/dist/server/stdio.js
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
After registration, Claude Code will start junis automatically and have access to all tools without any manual server startup.
|
|
138
|
+
|
|
139
|
+
---
|
|
140
|
+
|
|
141
|
+
## Environment Variables
|
|
142
|
+
|
|
143
|
+
| Variable | Default | Description |
|
|
144
|
+
|----------|---------|-------------|
|
|
145
|
+
| `JUNIS_API_URL` | `https://api.junis.ai` | REST API base URL |
|
|
146
|
+
| `JUNIS_WS_URL` | `wss://api.junis.ai` | WebSocket relay URL |
|
|
147
|
+
| `JUNIS_WEB_URL` | `https://junis.ai` | Web UI URL (used during OAuth) |
|
|
148
|
+
|
|
149
|
+
---
|
|
150
|
+
|
|
151
|
+
## Requirements
|
|
152
|
+
|
|
153
|
+
- Node.js >= 18
|
|
154
|
+
- (Optional) Playwright for browser tools: `npx playwright install chromium`
|
|
155
|
+
- (Optional) Jupyter for notebook tools: `pip install jupyter`
|
|
156
|
+
- (Optional) imagesnap for camera capture (macOS): `brew install imagesnap`
|
|
157
|
+
|
|
158
|
+
---
|
|
159
|
+
|
|
160
|
+
## License
|
|
161
|
+
|
|
162
|
+
MIT
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
#!/usr/bin/env node
|