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 ADDED
@@ -0,0 +1,162 @@
1
+ # junis
2
+
3
+ [![npm version](https://img.shields.io/npm/v/junis)](https://www.npmjs.com/package/junis)
4
+ [![license](https://img.shields.io/npm/l/junis)](./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