vibe-remote 2.0.1__tar.gz
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.
- vibe_remote-2.0.1/.gitignore +172 -0
- vibe_remote-2.0.1/LICENSE +21 -0
- vibe_remote-2.0.1/PKG-INFO +255 -0
- vibe_remote-2.0.1/README.md +222 -0
- vibe_remote-2.0.1/config/__init__.py +37 -0
- vibe_remote-2.0.1/config/paths.py +56 -0
- vibe_remote-2.0.1/config/v2_compat.py +74 -0
- vibe_remote-2.0.1/config/v2_config.py +205 -0
- vibe_remote-2.0.1/config/v2_sessions.py +73 -0
- vibe_remote-2.0.1/config/v2_settings.py +111 -0
- vibe_remote-2.0.1/core/__init__.py +0 -0
- vibe_remote-2.0.1/core/controller.py +712 -0
- vibe_remote-2.0.1/core/handlers/__init__.py +13 -0
- vibe_remote-2.0.1/core/handlers/command_handlers.py +342 -0
- vibe_remote-2.0.1/core/handlers/message_handler.py +359 -0
- vibe_remote-2.0.1/core/handlers/session_handler.py +233 -0
- vibe_remote-2.0.1/core/handlers/settings_handler.py +350 -0
- vibe_remote-2.0.1/docs/plans/v2/README.md +18 -0
- vibe_remote-2.0.1/main.py +101 -0
- vibe_remote-2.0.1/modules/__init__.py +0 -0
- vibe_remote-2.0.1/modules/agent_router.py +58 -0
- vibe_remote-2.0.1/modules/agents/__init__.py +38 -0
- vibe_remote-2.0.1/modules/agents/base.py +91 -0
- vibe_remote-2.0.1/modules/agents/claude_agent.py +344 -0
- vibe_remote-2.0.1/modules/agents/codex_agent.py +368 -0
- vibe_remote-2.0.1/modules/agents/opencode_agent.py +2178 -0
- vibe_remote-2.0.1/modules/agents/service.py +41 -0
- vibe_remote-2.0.1/modules/agents/subagent_router.py +136 -0
- vibe_remote-2.0.1/modules/claude_client.py +154 -0
- vibe_remote-2.0.1/modules/im/__init__.py +63 -0
- vibe_remote-2.0.1/modules/im/base.py +323 -0
- vibe_remote-2.0.1/modules/im/factory.py +60 -0
- vibe_remote-2.0.1/modules/im/formatters/__init__.py +4 -0
- vibe_remote-2.0.1/modules/im/formatters/base_formatter.py +639 -0
- vibe_remote-2.0.1/modules/im/formatters/slack_formatter.py +127 -0
- vibe_remote-2.0.1/modules/im/slack.py +1939 -0
- vibe_remote-2.0.1/modules/session_manager.py +138 -0
- vibe_remote-2.0.1/modules/settings_manager.py +536 -0
- vibe_remote-2.0.1/pyproject.toml +76 -0
- vibe_remote-2.0.1/ui/README.md +73 -0
- vibe_remote-2.0.1/ui/dist/assets/index-B36kr5vh.css +1 -0
- vibe_remote-2.0.1/ui/dist/assets/index-ZE4E1ImD.js +19 -0
- vibe_remote-2.0.1/ui/dist/assets/logo-BzryTZ7u.png +0 -0
- vibe_remote-2.0.1/ui/dist/index.html +17 -0
- vibe_remote-2.0.1/ui/dist/logo.png +0 -0
- vibe_remote-2.0.1/ui/dist/vite.svg +1 -0
- vibe_remote-2.0.1/vibe/__init__.py +6 -0
- vibe_remote-2.0.1/vibe/__main__.py +12 -0
- vibe_remote-2.0.1/vibe/_version.py +34 -0
- vibe_remote-2.0.1/vibe/api.py +410 -0
- vibe_remote-2.0.1/vibe/cli.py +594 -0
- vibe_remote-2.0.1/vibe/runtime.py +213 -0
- vibe_remote-2.0.1/vibe/templates/slack_manifest.json +65 -0
- vibe_remote-2.0.1/vibe/ui_server.py +343 -0
|
@@ -0,0 +1,172 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
*.manifest
|
|
31
|
+
*.spec
|
|
32
|
+
|
|
33
|
+
# Installer logs
|
|
34
|
+
pip-log.txt
|
|
35
|
+
pip-delete-this-directory.txt
|
|
36
|
+
|
|
37
|
+
# Unit test / coverage reports
|
|
38
|
+
htmlcov/
|
|
39
|
+
.tox/
|
|
40
|
+
.nox/
|
|
41
|
+
.coverage
|
|
42
|
+
.coverage.*
|
|
43
|
+
.cache
|
|
44
|
+
nosetests.xml
|
|
45
|
+
coverage.xml
|
|
46
|
+
*.cover
|
|
47
|
+
*.py,cover
|
|
48
|
+
.hypothesis/
|
|
49
|
+
.pytest_cache/
|
|
50
|
+
cover/
|
|
51
|
+
|
|
52
|
+
# Translations
|
|
53
|
+
*.mo
|
|
54
|
+
*.pot
|
|
55
|
+
|
|
56
|
+
# Django stuff:
|
|
57
|
+
*.log
|
|
58
|
+
local_settings.py
|
|
59
|
+
db.sqlite3
|
|
60
|
+
db.sqlite3-journal
|
|
61
|
+
|
|
62
|
+
# Flask stuff:
|
|
63
|
+
instance/
|
|
64
|
+
.webassets-cache
|
|
65
|
+
|
|
66
|
+
# Scrapy stuff:
|
|
67
|
+
.scrapy
|
|
68
|
+
|
|
69
|
+
# Sphinx documentation
|
|
70
|
+
docs/_build/
|
|
71
|
+
|
|
72
|
+
# PyBuilder
|
|
73
|
+
.pybuilder/
|
|
74
|
+
target/
|
|
75
|
+
|
|
76
|
+
# Jupyter Notebook
|
|
77
|
+
.ipynb_checkpoints
|
|
78
|
+
|
|
79
|
+
# IPython
|
|
80
|
+
profile_default/
|
|
81
|
+
ipython_config.py
|
|
82
|
+
|
|
83
|
+
# pyenv
|
|
84
|
+
.python-version
|
|
85
|
+
|
|
86
|
+
# pipenv
|
|
87
|
+
Pipfile.lock
|
|
88
|
+
|
|
89
|
+
# poetry
|
|
90
|
+
poetry.lock
|
|
91
|
+
|
|
92
|
+
# pdm
|
|
93
|
+
.pdm.toml
|
|
94
|
+
|
|
95
|
+
# PEP 582
|
|
96
|
+
__pypackages__/
|
|
97
|
+
|
|
98
|
+
# Celery stuff
|
|
99
|
+
celerybeat-schedule
|
|
100
|
+
celerybeat.pid
|
|
101
|
+
|
|
102
|
+
# SageMath parsed files
|
|
103
|
+
*.sage.py
|
|
104
|
+
|
|
105
|
+
# Environments
|
|
106
|
+
.env
|
|
107
|
+
.venv
|
|
108
|
+
env/
|
|
109
|
+
venv/
|
|
110
|
+
ENV/
|
|
111
|
+
env.bak/
|
|
112
|
+
venv.bak/
|
|
113
|
+
|
|
114
|
+
# Spyder project settings
|
|
115
|
+
.spyderproject
|
|
116
|
+
.spyproject
|
|
117
|
+
|
|
118
|
+
# Rope project settings
|
|
119
|
+
.ropeproject
|
|
120
|
+
|
|
121
|
+
# mkdocs documentation
|
|
122
|
+
/site
|
|
123
|
+
|
|
124
|
+
# mypy
|
|
125
|
+
.mypy_cache/
|
|
126
|
+
.dmypy.json
|
|
127
|
+
dmypy.json
|
|
128
|
+
|
|
129
|
+
# Pyre type checker
|
|
130
|
+
.pyre/
|
|
131
|
+
|
|
132
|
+
# pytype static type analyzer
|
|
133
|
+
.pytype/
|
|
134
|
+
|
|
135
|
+
# Cython debug symbols
|
|
136
|
+
cython_debug/
|
|
137
|
+
|
|
138
|
+
# PyCharm
|
|
139
|
+
.idea/
|
|
140
|
+
|
|
141
|
+
# VSCode
|
|
142
|
+
.vscode/
|
|
143
|
+
|
|
144
|
+
# Project specific
|
|
145
|
+
*.log
|
|
146
|
+
claude_proxy.log
|
|
147
|
+
demolog.log
|
|
148
|
+
_tmp/
|
|
149
|
+
.DS_Store
|
|
150
|
+
logs/
|
|
151
|
+
.vibe_remote/
|
|
152
|
+
ui/node_modules/
|
|
153
|
+
ui/dist/
|
|
154
|
+
ui/.vite/
|
|
155
|
+
tmp/
|
|
156
|
+
.bot.pid
|
|
157
|
+
user_settings.json
|
|
158
|
+
vibe/_version.py
|
|
159
|
+
|
|
160
|
+
# Config files with secrets
|
|
161
|
+
config/secrets.py
|
|
162
|
+
config/local_settings.py
|
|
163
|
+
|
|
164
|
+
# Session data
|
|
165
|
+
sessions/
|
|
166
|
+
*.session
|
|
167
|
+
|
|
168
|
+
# Temporary files
|
|
169
|
+
*.tmp
|
|
170
|
+
*.bak
|
|
171
|
+
*.swp
|
|
172
|
+
*~
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 The Vibe Remote Authors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
|
@@ -0,0 +1,255 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: vibe-remote
|
|
3
|
+
Version: 2.0.1
|
|
4
|
+
Summary: Local-first agent runtime for Slack - run AI coding agents from your chat
|
|
5
|
+
Project-URL: Homepage, https://github.com/cyhhao/vibe-remote
|
|
6
|
+
Project-URL: Repository, https://github.com/cyhhao/vibe-remote
|
|
7
|
+
Project-URL: Documentation, https://github.com/cyhhao/vibe-remote#readme
|
|
8
|
+
Project-URL: Issues, https://github.com/cyhhao/vibe-remote/issues
|
|
9
|
+
Author-email: cyhhao <cyhhao@users.noreply.github.com>
|
|
10
|
+
License-Expression: MIT
|
|
11
|
+
License-File: LICENSE
|
|
12
|
+
Keywords: agent,ai,automation,claude,codex,opencode,slack
|
|
13
|
+
Classifier: Development Status :: 4 - Beta
|
|
14
|
+
Classifier: Environment :: Console
|
|
15
|
+
Classifier: Intended Audience :: Developers
|
|
16
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
17
|
+
Classifier: Operating System :: OS Independent
|
|
18
|
+
Classifier: Programming Language :: Python :: 3
|
|
19
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
20
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
21
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
22
|
+
Classifier: Topic :: Communications :: Chat
|
|
23
|
+
Classifier: Topic :: Software Development :: Libraries :: Python Modules
|
|
24
|
+
Requires-Python: >=3.10
|
|
25
|
+
Requires-Dist: aiohttp>=3.8.0
|
|
26
|
+
Requires-Dist: anyio>=4.0.0
|
|
27
|
+
Requires-Dist: claude-code-sdk>=0.0.25
|
|
28
|
+
Requires-Dist: markdown-to-mrkdwn>=0.2.0
|
|
29
|
+
Requires-Dist: pyyaml>=6.0
|
|
30
|
+
Requires-Dist: slack-sdk>=3.26.0
|
|
31
|
+
Requires-Dist: typing-extensions>=4.12.2
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
|
|
34
|
+
<div align="center">
|
|
35
|
+
|
|
36
|
+
<img src="assets/logo.png" alt="Vibe Remote" width="120"/>
|
|
37
|
+
|
|
38
|
+
# Vibe Remote
|
|
39
|
+
|
|
40
|
+
### Your AI coding army, commanded from Slack.
|
|
41
|
+
|
|
42
|
+
**No laptop. No IDE. Just vibes.**
|
|
43
|
+
|
|
44
|
+
[](https://github.com/cyhhao/vibe-remote/stargazers)
|
|
45
|
+
[](https://www.python.org/)
|
|
46
|
+
[](LICENSE)
|
|
47
|
+
|
|
48
|
+
[English](README.md) | [中文](README_ZH.md)
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+

|
|
53
|
+
|
|
54
|
+
</div>
|
|
55
|
+
|
|
56
|
+
## The Pitch
|
|
57
|
+
|
|
58
|
+
You're at the beach. Phone buzzes — production's on fire.
|
|
59
|
+
|
|
60
|
+
**Old you:** Panic. Find WiFi. Open laptop. Wait for IDE. Lose your tan.
|
|
61
|
+
|
|
62
|
+
**Vibe Remote you:** Open Slack. Type "Fix the auth bug in login.py". Watch Claude Code fix it in real-time. Approve. Sip margarita.
|
|
63
|
+
|
|
64
|
+
```
|
|
65
|
+
That's it. That's the product.
|
|
66
|
+
```
|
|
67
|
+
|
|
68
|
+
---
|
|
69
|
+
|
|
70
|
+
## Install in 10 Seconds
|
|
71
|
+
|
|
72
|
+
```bash
|
|
73
|
+
curl -fsSL https://raw.githubusercontent.com/cyhhao/vibe-remote/master/install.sh | bash && vibe
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
That's it. Browser opens. Paste your Slack tokens. Done.
|
|
77
|
+
|
|
78
|
+
<details>
|
|
79
|
+
<summary><b>Windows?</b></summary>
|
|
80
|
+
|
|
81
|
+
```powershell
|
|
82
|
+
irm https://raw.githubusercontent.com/cyhhao/vibe-remote/master/install.ps1 | iex
|
|
83
|
+
```
|
|
84
|
+
</details>
|
|
85
|
+
|
|
86
|
+
---
|
|
87
|
+
|
|
88
|
+
## Why This Exists
|
|
89
|
+
|
|
90
|
+
| Problem | Solution |
|
|
91
|
+
|---------|----------|
|
|
92
|
+
| Claude Code is amazing but needs a terminal | Slack IS your terminal now |
|
|
93
|
+
| Context-switching kills flow | Stay in one app |
|
|
94
|
+
| Can't code from phone | Yes you can |
|
|
95
|
+
| Multiple agents, multiple setups | One Slack, any agent |
|
|
96
|
+
|
|
97
|
+
**Supported Agents:**
|
|
98
|
+
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) — Deep reasoning, complex refactors
|
|
99
|
+
- [OpenCode](https://opencode.ai) — Fast, extensible, community favorite
|
|
100
|
+
- [Codex](https://github.com/openai/codex) — OpenAI's coding model
|
|
101
|
+
|
|
102
|
+
---
|
|
103
|
+
|
|
104
|
+
## How It Works
|
|
105
|
+
|
|
106
|
+
```
|
|
107
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
108
|
+
│ You │ Slack │ Vibe Remote │ stdio │ AI Agent │
|
|
109
|
+
│ (anywhere) │ ──────▶ │ (your Mac) │ ──────▶ │ (your code) │
|
|
110
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
1. **You type** in Slack: *"Add dark mode to the settings page"*
|
|
114
|
+
2. **Vibe Remote** routes to your configured agent
|
|
115
|
+
3. **Agent** reads your codebase, writes code, streams back
|
|
116
|
+
4. **You review** in Slack, iterate in thread
|
|
117
|
+
|
|
118
|
+
**Your code never leaves your machine.** Vibe Remote runs locally and connects via Slack's Socket Mode.
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
## Quick Start
|
|
123
|
+
|
|
124
|
+
### 1. Install
|
|
125
|
+
```bash
|
|
126
|
+
curl -fsSL https://raw.githubusercontent.com/cyhhao/vibe-remote/master/install.sh | bash
|
|
127
|
+
```
|
|
128
|
+
|
|
129
|
+
### 2. Run
|
|
130
|
+
```bash
|
|
131
|
+
vibe
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
### 3. Setup Slack (5 min)
|
|
135
|
+
The web UI guides you through everything. Or read the [detailed guide](docs/SLACK_SETUP.md).
|
|
136
|
+
|
|
137
|
+
### 4. Vibe
|
|
138
|
+
```
|
|
139
|
+
/start → Pick your agent → Start typing
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
---
|
|
143
|
+
|
|
144
|
+
## Commands
|
|
145
|
+
|
|
146
|
+
| In Slack | What it does |
|
|
147
|
+
|----------|--------------|
|
|
148
|
+
| `/start` | Open control panel |
|
|
149
|
+
| `/stop` | Kill current session |
|
|
150
|
+
| Just type | Talk to your agent |
|
|
151
|
+
| Reply in thread | Continue conversation |
|
|
152
|
+
|
|
153
|
+
**Pro tip:** Each Slack thread = isolated session. Start multiple threads for parallel tasks.
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## Per-Channel Routing
|
|
158
|
+
|
|
159
|
+
Different projects, different agents:
|
|
160
|
+
|
|
161
|
+
```
|
|
162
|
+
#frontend → OpenCode (fast iteration)
|
|
163
|
+
#backend → Claude Code (complex logic)
|
|
164
|
+
#prototypes → Codex (quick experiments)
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
Configure in web UI → Channels.
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## CLI
|
|
172
|
+
|
|
173
|
+
```bash
|
|
174
|
+
vibe # Start everything
|
|
175
|
+
vibe status # Check if running
|
|
176
|
+
vibe stop # Stop everything
|
|
177
|
+
vibe doctor # Diagnose issues
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## Prerequisites
|
|
183
|
+
|
|
184
|
+
You need at least one coding agent installed:
|
|
185
|
+
|
|
186
|
+
<details>
|
|
187
|
+
<summary><b>Claude Code</b> (Recommended)</summary>
|
|
188
|
+
|
|
189
|
+
```bash
|
|
190
|
+
npm install -g @anthropic-ai/claude-code
|
|
191
|
+
```
|
|
192
|
+
</details>
|
|
193
|
+
|
|
194
|
+
<details>
|
|
195
|
+
<summary><b>OpenCode</b></summary>
|
|
196
|
+
|
|
197
|
+
```bash
|
|
198
|
+
curl -fsSL https://opencode.ai/install | bash
|
|
199
|
+
```
|
|
200
|
+
</details>
|
|
201
|
+
|
|
202
|
+
<details>
|
|
203
|
+
<summary><b>Codex</b></summary>
|
|
204
|
+
|
|
205
|
+
```bash
|
|
206
|
+
npm install -g @openai/codex
|
|
207
|
+
```
|
|
208
|
+
</details>
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
## Security
|
|
213
|
+
|
|
214
|
+
- **Local-first** — Vibe Remote runs on your machine
|
|
215
|
+
- **Socket Mode** — No public URLs, no webhooks
|
|
216
|
+
- **Your tokens** — Stored in `~/.vibe_remote/`, never uploaded
|
|
217
|
+
- **Your code** — Stays on your disk, sent only to your chosen AI provider
|
|
218
|
+
|
|
219
|
+
---
|
|
220
|
+
|
|
221
|
+
## Uninstall
|
|
222
|
+
|
|
223
|
+
```bash
|
|
224
|
+
vibe stop && uv tool uninstall vibe-remote && rm -rf ~/.vibe_remote
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
---
|
|
228
|
+
|
|
229
|
+
## Roadmap
|
|
230
|
+
|
|
231
|
+
- [ ] Discord & Teams support
|
|
232
|
+
- [ ] File attachments in Slack
|
|
233
|
+
- [ ] Multi-workspace
|
|
234
|
+
- [ ] Cloud relay mode (optional)
|
|
235
|
+
|
|
236
|
+
---
|
|
237
|
+
|
|
238
|
+
## Docs
|
|
239
|
+
|
|
240
|
+
- **[Slack Setup Guide](docs/SLACK_SETUP.md)** — Create your Slack app
|
|
241
|
+
- **[中文安装指南](docs/SLACK_SETUP_ZH.md)** — Chinese guide
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
<div align="center">
|
|
246
|
+
|
|
247
|
+
**Stop context-switching. Start vibe coding.**
|
|
248
|
+
|
|
249
|
+
[Install Now](#install-in-10-seconds) · [Setup Slack](docs/SLACK_SETUP.md) · [Report Bug](https://github.com/cyhhao/vibe-remote/issues)
|
|
250
|
+
|
|
251
|
+
---
|
|
252
|
+
|
|
253
|
+
*Built for developers who code from anywhere.*
|
|
254
|
+
|
|
255
|
+
</div>
|
|
@@ -0,0 +1,222 @@
|
|
|
1
|
+
<div align="center">
|
|
2
|
+
|
|
3
|
+
<img src="assets/logo.png" alt="Vibe Remote" width="120"/>
|
|
4
|
+
|
|
5
|
+
# Vibe Remote
|
|
6
|
+
|
|
7
|
+
### Your AI coding army, commanded from Slack.
|
|
8
|
+
|
|
9
|
+
**No laptop. No IDE. Just vibes.**
|
|
10
|
+
|
|
11
|
+
[](https://github.com/cyhhao/vibe-remote/stargazers)
|
|
12
|
+
[](https://www.python.org/)
|
|
13
|
+
[](LICENSE)
|
|
14
|
+
|
|
15
|
+
[English](README.md) | [中文](README_ZH.md)
|
|
16
|
+
|
|
17
|
+
---
|
|
18
|
+
|
|
19
|
+

|
|
20
|
+
|
|
21
|
+
</div>
|
|
22
|
+
|
|
23
|
+
## The Pitch
|
|
24
|
+
|
|
25
|
+
You're at the beach. Phone buzzes — production's on fire.
|
|
26
|
+
|
|
27
|
+
**Old you:** Panic. Find WiFi. Open laptop. Wait for IDE. Lose your tan.
|
|
28
|
+
|
|
29
|
+
**Vibe Remote you:** Open Slack. Type "Fix the auth bug in login.py". Watch Claude Code fix it in real-time. Approve. Sip margarita.
|
|
30
|
+
|
|
31
|
+
```
|
|
32
|
+
That's it. That's the product.
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
37
|
+
## Install in 10 Seconds
|
|
38
|
+
|
|
39
|
+
```bash
|
|
40
|
+
curl -fsSL https://raw.githubusercontent.com/cyhhao/vibe-remote/master/install.sh | bash && vibe
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
That's it. Browser opens. Paste your Slack tokens. Done.
|
|
44
|
+
|
|
45
|
+
<details>
|
|
46
|
+
<summary><b>Windows?</b></summary>
|
|
47
|
+
|
|
48
|
+
```powershell
|
|
49
|
+
irm https://raw.githubusercontent.com/cyhhao/vibe-remote/master/install.ps1 | iex
|
|
50
|
+
```
|
|
51
|
+
</details>
|
|
52
|
+
|
|
53
|
+
---
|
|
54
|
+
|
|
55
|
+
## Why This Exists
|
|
56
|
+
|
|
57
|
+
| Problem | Solution |
|
|
58
|
+
|---------|----------|
|
|
59
|
+
| Claude Code is amazing but needs a terminal | Slack IS your terminal now |
|
|
60
|
+
| Context-switching kills flow | Stay in one app |
|
|
61
|
+
| Can't code from phone | Yes you can |
|
|
62
|
+
| Multiple agents, multiple setups | One Slack, any agent |
|
|
63
|
+
|
|
64
|
+
**Supported Agents:**
|
|
65
|
+
- [Claude Code](https://docs.anthropic.com/en/docs/claude-code) — Deep reasoning, complex refactors
|
|
66
|
+
- [OpenCode](https://opencode.ai) — Fast, extensible, community favorite
|
|
67
|
+
- [Codex](https://github.com/openai/codex) — OpenAI's coding model
|
|
68
|
+
|
|
69
|
+
---
|
|
70
|
+
|
|
71
|
+
## How It Works
|
|
72
|
+
|
|
73
|
+
```
|
|
74
|
+
┌──────────────┐ ┌──────────────┐ ┌──────────────┐
|
|
75
|
+
│ You │ Slack │ Vibe Remote │ stdio │ AI Agent │
|
|
76
|
+
│ (anywhere) │ ──────▶ │ (your Mac) │ ──────▶ │ (your code) │
|
|
77
|
+
└──────────────┘ └──────────────┘ └──────────────┘
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
1. **You type** in Slack: *"Add dark mode to the settings page"*
|
|
81
|
+
2. **Vibe Remote** routes to your configured agent
|
|
82
|
+
3. **Agent** reads your codebase, writes code, streams back
|
|
83
|
+
4. **You review** in Slack, iterate in thread
|
|
84
|
+
|
|
85
|
+
**Your code never leaves your machine.** Vibe Remote runs locally and connects via Slack's Socket Mode.
|
|
86
|
+
|
|
87
|
+
---
|
|
88
|
+
|
|
89
|
+
## Quick Start
|
|
90
|
+
|
|
91
|
+
### 1. Install
|
|
92
|
+
```bash
|
|
93
|
+
curl -fsSL https://raw.githubusercontent.com/cyhhao/vibe-remote/master/install.sh | bash
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
### 2. Run
|
|
97
|
+
```bash
|
|
98
|
+
vibe
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
### 3. Setup Slack (5 min)
|
|
102
|
+
The web UI guides you through everything. Or read the [detailed guide](docs/SLACK_SETUP.md).
|
|
103
|
+
|
|
104
|
+
### 4. Vibe
|
|
105
|
+
```
|
|
106
|
+
/start → Pick your agent → Start typing
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
---
|
|
110
|
+
|
|
111
|
+
## Commands
|
|
112
|
+
|
|
113
|
+
| In Slack | What it does |
|
|
114
|
+
|----------|--------------|
|
|
115
|
+
| `/start` | Open control panel |
|
|
116
|
+
| `/stop` | Kill current session |
|
|
117
|
+
| Just type | Talk to your agent |
|
|
118
|
+
| Reply in thread | Continue conversation |
|
|
119
|
+
|
|
120
|
+
**Pro tip:** Each Slack thread = isolated session. Start multiple threads for parallel tasks.
|
|
121
|
+
|
|
122
|
+
---
|
|
123
|
+
|
|
124
|
+
## Per-Channel Routing
|
|
125
|
+
|
|
126
|
+
Different projects, different agents:
|
|
127
|
+
|
|
128
|
+
```
|
|
129
|
+
#frontend → OpenCode (fast iteration)
|
|
130
|
+
#backend → Claude Code (complex logic)
|
|
131
|
+
#prototypes → Codex (quick experiments)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
Configure in web UI → Channels.
|
|
135
|
+
|
|
136
|
+
---
|
|
137
|
+
|
|
138
|
+
## CLI
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
vibe # Start everything
|
|
142
|
+
vibe status # Check if running
|
|
143
|
+
vibe stop # Stop everything
|
|
144
|
+
vibe doctor # Diagnose issues
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
---
|
|
148
|
+
|
|
149
|
+
## Prerequisites
|
|
150
|
+
|
|
151
|
+
You need at least one coding agent installed:
|
|
152
|
+
|
|
153
|
+
<details>
|
|
154
|
+
<summary><b>Claude Code</b> (Recommended)</summary>
|
|
155
|
+
|
|
156
|
+
```bash
|
|
157
|
+
npm install -g @anthropic-ai/claude-code
|
|
158
|
+
```
|
|
159
|
+
</details>
|
|
160
|
+
|
|
161
|
+
<details>
|
|
162
|
+
<summary><b>OpenCode</b></summary>
|
|
163
|
+
|
|
164
|
+
```bash
|
|
165
|
+
curl -fsSL https://opencode.ai/install | bash
|
|
166
|
+
```
|
|
167
|
+
</details>
|
|
168
|
+
|
|
169
|
+
<details>
|
|
170
|
+
<summary><b>Codex</b></summary>
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
npm install -g @openai/codex
|
|
174
|
+
```
|
|
175
|
+
</details>
|
|
176
|
+
|
|
177
|
+
---
|
|
178
|
+
|
|
179
|
+
## Security
|
|
180
|
+
|
|
181
|
+
- **Local-first** — Vibe Remote runs on your machine
|
|
182
|
+
- **Socket Mode** — No public URLs, no webhooks
|
|
183
|
+
- **Your tokens** — Stored in `~/.vibe_remote/`, never uploaded
|
|
184
|
+
- **Your code** — Stays on your disk, sent only to your chosen AI provider
|
|
185
|
+
|
|
186
|
+
---
|
|
187
|
+
|
|
188
|
+
## Uninstall
|
|
189
|
+
|
|
190
|
+
```bash
|
|
191
|
+
vibe stop && uv tool uninstall vibe-remote && rm -rf ~/.vibe_remote
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
## Roadmap
|
|
197
|
+
|
|
198
|
+
- [ ] Discord & Teams support
|
|
199
|
+
- [ ] File attachments in Slack
|
|
200
|
+
- [ ] Multi-workspace
|
|
201
|
+
- [ ] Cloud relay mode (optional)
|
|
202
|
+
|
|
203
|
+
---
|
|
204
|
+
|
|
205
|
+
## Docs
|
|
206
|
+
|
|
207
|
+
- **[Slack Setup Guide](docs/SLACK_SETUP.md)** — Create your Slack app
|
|
208
|
+
- **[中文安装指南](docs/SLACK_SETUP_ZH.md)** — Chinese guide
|
|
209
|
+
|
|
210
|
+
---
|
|
211
|
+
|
|
212
|
+
<div align="center">
|
|
213
|
+
|
|
214
|
+
**Stop context-switching. Start vibe coding.**
|
|
215
|
+
|
|
216
|
+
[Install Now](#install-in-10-seconds) · [Setup Slack](docs/SLACK_SETUP.md) · [Report Bug](https://github.com/cyhhao/vibe-remote/issues)
|
|
217
|
+
|
|
218
|
+
---
|
|
219
|
+
|
|
220
|
+
*Built for developers who code from anywhere.*
|
|
221
|
+
|
|
222
|
+
</div>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
from .paths import (
|
|
2
|
+
get_vibe_remote_dir,
|
|
3
|
+
get_config_dir,
|
|
4
|
+
get_state_dir,
|
|
5
|
+
get_logs_dir,
|
|
6
|
+
get_runtime_dir,
|
|
7
|
+
get_runtime_pid_path,
|
|
8
|
+
get_runtime_ui_pid_path,
|
|
9
|
+
get_runtime_status_path,
|
|
10
|
+
get_runtime_doctor_path,
|
|
11
|
+
get_config_path,
|
|
12
|
+
get_settings_path,
|
|
13
|
+
get_sessions_path,
|
|
14
|
+
ensure_data_dirs,
|
|
15
|
+
)
|
|
16
|
+
from .v2_config import V2Config
|
|
17
|
+
from .v2_settings import SettingsStore
|
|
18
|
+
from .v2_sessions import SessionsStore
|
|
19
|
+
|
|
20
|
+
__all__ = [
|
|
21
|
+
"V2Config",
|
|
22
|
+
"SettingsStore",
|
|
23
|
+
"SessionsStore",
|
|
24
|
+
"get_vibe_remote_dir",
|
|
25
|
+
"get_config_dir",
|
|
26
|
+
"get_state_dir",
|
|
27
|
+
"get_logs_dir",
|
|
28
|
+
"get_runtime_dir",
|
|
29
|
+
"get_runtime_pid_path",
|
|
30
|
+
"get_runtime_ui_pid_path",
|
|
31
|
+
"get_runtime_status_path",
|
|
32
|
+
"get_runtime_doctor_path",
|
|
33
|
+
"get_config_path",
|
|
34
|
+
"get_settings_path",
|
|
35
|
+
"get_sessions_path",
|
|
36
|
+
"ensure_data_dirs",
|
|
37
|
+
]
|