Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,8 +78,8 @@ jobs:
chmod +x rojo
sudo mv rojo /usr/local/bin/rojo
rojo --version
- run: mkdir -p dist && rojo build plugin/default.project.json -o dist/Brickbot.rbxmx
- run: mkdir -p dist && rojo build plugin/default.project.json -o dist/Roickbot.rbxmx
- uses: actions/upload-artifact@v4
with:
name: Brickbot-plugin
path: dist/Brickbot.rbxmx
name: Roickbot-plugin
path: dist/Roickbot.rbxmx
8 changes: 4 additions & 4 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@ jobs:
chmod +x rojo
sudo mv rojo /usr/local/bin/rojo
rojo --version
- run: mkdir -p dist && rojo build plugin/default.project.json -o dist/Brickbot.rbxmx
- run: mkdir -p dist && rojo build plugin/default.project.json -o dist/Roickbot.rbxmx
- uses: actions/upload-artifact@v4
with:
name: Brickbot-plugin
path: dist/Brickbot.rbxmx
name: Roickbot-plugin
path: dist/Roickbot.rbxmx

desktop:
name: Build desktop app (${{ matrix.os }})
Expand All @@ -51,7 +51,7 @@ jobs:
# 插件 .rbxmx 需放到 dist/ 供 electron-builder 的 extraResources 打包。
- uses: actions/download-artifact@v4
with:
name: Brickbot-plugin
name: Roickbot-plugin
path: dist
- run: npm ci
- run: npm run build:core
Expand Down
2 changes: 1 addition & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -16,4 +16,4 @@ bench-results.json
bench-summary.md

# Packaged plugin artifact (built from plugin/src)
Brickbot.rbxmx
Roickbot.rbxmx
2 changes: 1 addition & 1 deletion .mcp.json.example
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"mcpServers": {
"brickbot": {
"roickbot": {
"type": "http",
"url": "http://127.0.0.1:7331/mcp",
"headers": {
Expand Down
58 changes: 29 additions & 29 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
# Brickbot

[![CI](https://github.com/TonyD365/Brickbot/actions/workflows/ci.yml/badge.svg)](https://github.com/TonyD365/Brickbot/actions/workflows/ci.yml)
[![Latest release](https://img.shields.io/github/v/release/TonyD365/Brickbot?sort=semver)](https://github.com/TonyD365/Brickbot/releases/latest)
[![Downloads total](https://img.shields.io/github/downloads/TonyD365/Brickbot/total?label=downloads)](https://github.com/TonyD365/Brickbot/releases)
[![Downloads latest](https://img.shields.io/github/downloads/TonyD365/Brickbot/latest/total?label=downloads%40latest)](https://github.com/TonyD365/Brickbot/releases/latest)
[![Stars](https://img.shields.io/github/stars/TonyD365/Brickbot?style=flat)](https://github.com/TonyD365/Brickbot/stargazers)
[![Last commit](https://img.shields.io/github/last-commit/TonyD365/Brickbot)](https://github.com/TonyD365/Brickbot/commits)
# Roickbot

[![CI](https://github.com/TonyD365/Roickbot/actions/workflows/ci.yml/badge.svg)](https://github.com/TonyD365/Roickbot/actions/workflows/ci.yml)
[![Latest release](https://img.shields.io/github/v/release/TonyD365/Roickbot?sort=semver)](https://github.com/TonyD365/Roickbot/releases/latest)
[![Downloads total](https://img.shields.io/github/downloads/TonyD365/Roickbot/total?label=downloads)](https://github.com/TonyD365/Roickbot/releases)
[![Downloads latest](https://img.shields.io/github/downloads/TonyD365/Roickbot/latest/total?label=downloads%40latest)](https://github.com/TonyD365/Roickbot/releases/latest)
[![Stars](https://img.shields.io/github/stars/TonyD365/Roickbot?style=flat)](https://github.com/TonyD365/Roickbot/stargazers)
[![Last commit](https://img.shields.io/github/last-commit/TonyD365/Roickbot)](https://github.com/TonyD365/Roickbot/commits)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

A desktop app + MCP server that lets **Claude Code — and any other MCP client (Gemini, Cursor,
Expand All @@ -18,7 +18,7 @@ all through natural language from your editor.
> working, secured bridge with tools for scripts, instances, properties, selection, run/test,
> and building scenes (parts, terrain, lighting, decals, models, GUI), plus a universal
> `run_luau` escape hatch. Phase 3 (Bot vision) is next. Cross-platform installers with
> auto-update are published on the [Releases](https://github.com/TonyD365/Brickbot/releases) page.
> auto-update are published on the [Releases](https://github.com/TonyD365/Roickbot/releases) page.

*(中文版见下方 / Chinese version below.)*

Expand Down Expand Up @@ -97,16 +97,16 @@ See [docs/PROTOCOL.md](docs/PROTOCOL.md) for the full wire protocol.
## Installation (end user)

1. **Install the desktop app** from the
[Releases](https://github.com/TonyD365/Brickbot/releases) page — a macOS `.dmg`
[Releases](https://github.com/TonyD365/Roickbot/releases) page — a macOS `.dmg`
(Universal: Intel + Apple Silicon) or a Windows `.exe` (x64, runs on Intel and ARM).
2. **Start the service** in the app, pick your client from the dropdown (Claude Code, Cursor,
Gemini CLI, Cline, VS Code) and click **Install MCP config** — the app writes the `brickbot`
Gemini CLI, Cline, VS Code) and click **Install MCP config** — the app writes the `roickbot`
server in that client's exact format and location for you. Then restart the client.
3. **Install the plugin**: if it shows offline, click **Install plugin** and save
`Brickbot.rbxmx` into your Studio Plugins folder.
`Roickbot.rbxmx` into your Studio Plugins folder.
4. **Enable HTTP** in Studio's Command Bar (once per place):
`game:GetService("HttpService").HttpEnabled = true`
5. **Pair**: copy the token from the app, paste it into the Brickbot plugin panel in Studio,
5. **Pair**: copy the token from the app, paste it into the Roickbot plugin panel in Studio,
and click **Connect**.
6. **Verify**: ask Claude to call the `health` tool — it should report `pluginConnected: true`.

Expand All @@ -125,7 +125,7 @@ To run the desktop app from source you also need the Electron binary (run `npm i
`ELECTRON_SKIP_BINARY_DOWNLOAD`) and a built plugin:

```bash
npm run build:plugin # requires Rojo (see plugin/aftman.toml) -> dist/Brickbot.rbxmx
npm run build:plugin # requires Rojo (see plugin/aftman.toml) -> dist/Roickbot.rbxmx
npm run build:desktop
npm start --workspace packages/desktop
```
Expand Down Expand Up @@ -184,7 +184,7 @@ client automatically (each one differs slightly, e.g. Cline needs `streamableHtt
```json
{
"mcpServers": {
"brickbot": {
"roickbot": {
"httpUrl": "http://127.0.0.1:7331/mcp",
"headers": { "Authorization": "Bearer PASTE_TOKEN", "X-Roblox-MCP": "1" }
}
Expand Down Expand Up @@ -236,14 +236,14 @@ MIT

<br>

# Brickbot(中文)
# Roickbot(中文)

[![CI](https://github.com/TonyD365/Brickbot/actions/workflows/ci.yml/badge.svg)](https://github.com/TonyD365/Brickbot/actions/workflows/ci.yml)
[![Latest release](https://img.shields.io/github/v/release/TonyD365/Brickbot?sort=semver)](https://github.com/TonyD365/Brickbot/releases/latest)
[![Downloads total](https://img.shields.io/github/downloads/TonyD365/Brickbot/total?label=downloads)](https://github.com/TonyD365/Brickbot/releases)
[![Downloads latest](https://img.shields.io/github/downloads/TonyD365/Brickbot/latest/total?label=downloads%40latest)](https://github.com/TonyD365/Brickbot/releases/latest)
[![Stars](https://img.shields.io/github/stars/TonyD365/Brickbot?style=flat)](https://github.com/TonyD365/Brickbot/stargazers)
[![Last commit](https://img.shields.io/github/last-commit/TonyD365/Brickbot)](https://github.com/TonyD365/Brickbot/commits)
[![CI](https://github.com/TonyD365/Roickbot/actions/workflows/ci.yml/badge.svg)](https://github.com/TonyD365/Roickbot/actions/workflows/ci.yml)
[![Latest release](https://img.shields.io/github/v/release/TonyD365/Roickbot?sort=semver)](https://github.com/TonyD365/Roickbot/releases/latest)
[![Downloads total](https://img.shields.io/github/downloads/TonyD365/Roickbot/total?label=downloads)](https://github.com/TonyD365/Roickbot/releases)
[![Downloads latest](https://img.shields.io/github/downloads/TonyD365/Roickbot/latest/total?label=downloads%40latest)](https://github.com/TonyD365/Roickbot/releases/latest)
[![Stars](https://img.shields.io/github/stars/TonyD365/Roickbot?style=flat)](https://github.com/TonyD365/Roickbot/stargazers)
[![Last commit](https://img.shields.io/github/last-commit/TonyD365/Roickbot)](https://github.com/TonyD365/Roickbot/commits)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

一个桌面应用 + MCP 服务器,让 **Claude Code —— 以及任何其它 MCP 客户端(Gemini、Cursor、VS Code…)**
Expand All @@ -254,7 +254,7 @@ MIT
> **状态:** v1.0.0 已发布。第一阶段(核心)与第二阶段(做图)均已完成 —— 一条可用且带安全鉴权的桥,
> 涵盖脚本、实例、属性、选择、运行/测试,以及搭建场景(Part、地形、光照、贴图、模型、GUI),外加万能的
> `run_luau` 逃生舱。第三阶段(Bot 视觉)进行中。带自动更新的跨平台安装包见
> [Releases](https://github.com/TonyD365/Brickbot/releases) 页面。
> [Releases](https://github.com/TonyD365/Roickbot/releases) 页面。

## 目录

Expand Down Expand Up @@ -318,15 +318,15 @@ Studio 插件通过 **WebSocket**(Studio 的 `HttpService:CreateWebStreamClien

## 安装(最终用户)

1. 从 [Releases](https://github.com/TonyD365/Brickbot/releases) 页面**下载桌面应用**
1. 从 [Releases](https://github.com/TonyD365/Roickbot/releases) 页面**下载桌面应用**
(Windows `.exe` 或 macOS `.dmg`,arm64 / x64)。
2. 在应用里**启动服务**,从下拉框选择你的客户端(Claude Code、Cursor、Gemini CLI、Cline、VS Code)
再点 **Install MCP config** —— 应用会按该客户端正确的格式与路径自动写入 `brickbot` 服务,
再点 **Install MCP config** —— 应用会按该客户端正确的格式与路径自动写入 `roickbot` 服务,
然后重启对应客户端。
3. **安装插件**:若显示离线,点 **Install plugin**,把 `Brickbot.rbxmx` 保存到 Studio 的 Plugins 目录。
3. **安装插件**:若显示离线,点 **Install plugin**,把 `Roickbot.rbxmx` 保存到 Studio 的 Plugins 目录。
4. 在 Studio 命令栏**启用 HTTP**(每个 place 一次):
`game:GetService("HttpService").HttpEnabled = true`
5. **配对**:从应用复制 token,粘贴进 Studio 里的 Brickbot 插件面板,点 **Connect**。
5. **配对**:从应用复制 token,粘贴进 Studio 里的 Roickbot 插件面板,点 **Connect**。
6. **验证**:让 Claude 调用 `health` 工具 —— 应返回 `pluginConnected: true`。

完整步骤见 [docs/INSTALL.md](docs/INSTALL.md)。
Expand All @@ -344,7 +344,7 @@ node smoke.mjs # 端到端桥烟雾测试(无需 Studio)
`ELECTRON_SKIP_BINARY_DOWNLOAD`)以及构建好的插件:

```bash
npm run build:plugin # 需要 Rojo(见 plugin/aftman.toml) -> dist/Brickbot.rbxmx
npm run build:plugin # 需要 Rojo(见 plugin/aftman.toml) -> dist/Roickbot.rbxmx
npm run build:desktop
npm start --workspace packages/desktop
```
Expand Down Expand Up @@ -396,7 +396,7 @@ npm start --workspace packages/desktop
```json
{
"mcpServers": {
"brickbot": {
"roickbot": {
"httpUrl": "http://127.0.0.1:7331/mcp",
"headers": { "Authorization": "Bearer 粘贴你的token", "X-Roblox-MCP": "1" }
}
Expand Down
8 changes: 4 additions & 4 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
## Brickbot v0.1.0 — Phase 1: the core bridge
## Roickbot v0.1.0 — Phase 1: the core bridge

The first release. This is a working, secured bridge that lets **Claude / Claude Code** control a
Roblox Studio session in natural language — read and edit scripts, inspect and modify the scene,
Expand Down Expand Up @@ -27,14 +27,14 @@ run the simulation, and run arbitrary Luau.
| --- | --- |
| `Claude.for.Roblox.Studio-*-arm64.dmg` / `-x64.dmg` | macOS desktop app (Apple Silicon / Intel) |
| `Claude.for.Roblox.Studio-*-x64.exe` / `-arm64.exe` | Windows desktop app |
| `Brickbot.rbxmx` | The Roblox Studio plugin (drop into your Studio Plugins folder) |
| `Roickbot.rbxmx` | The Roblox Studio plugin (drop into your Studio Plugins folder) |
| `SHA256SUMS` | Checksums for the files above |

### Getting started

1. Install the desktop app, click **Start service**, then **Install MCP config**, and restart
Claude Code.
2. Install `Brickbot.rbxmx` into Studio, enable HTTP
2. Install `Roickbot.rbxmx` into Studio, enable HTTP
(`game:GetService("HttpService").HttpEnabled = true`), paste the token into the plugin, and click
**Connect**.
3. Ask Claude to call the `health` tool — it should report `pluginConnected: true`.
Expand All @@ -54,5 +54,5 @@ Full guide: [docs/INSTALL.md](docs/INSTALL.md) · Tools: [docs/TOOLS.md](docs/TO
首个版本,第一阶段核心:让 Claude / Claude Code 用自然语言操控 Roblox Studio —— 读写脚本、查看与修改
场景、运行仿真、执行任意 Luau。安全方面只绑回环、随机 token、`Host`/`Origin` 校验、必需自定义头,防御
恶意网页;破坏性操作先 dry-run 预览 + 确认,所有更改可撤销。下载桌面应用(Win/macOS,arm64+x64)和插件
`Brickbot.rbxmx`,按 [docs/INSTALL.md](docs/INSTALL.md) 配置即可。安装包暂未签名,首次打开需绕过
`Roickbot.rbxmx`,按 [docs/INSTALL.md](docs/INSTALL.md) 配置即可。安装包暂未签名,首次打开需绕过
Gatekeeper / SmartScreen。
10 changes: 5 additions & 5 deletions docs/CLIENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ The **Gemini CLI** is free, has a generous free tier, and is good at tool use.
```json
{
"mcpServers": {
"brickbot": {
"roickbot": {
"httpUrl": "http://127.0.0.1:7331/mcp",
"headers": {
"Authorization": "Bearer PASTE_TOKEN_FROM_THE_APP",
Expand All @@ -63,7 +63,7 @@ Add to `~/.cursor/mcp.json` (global) or `.cursor/mcp.json` (project):
```json
{
"mcpServers": {
"brickbot": {
"roickbot": {
"url": "http://127.0.0.1:7331/mcp",
"headers": { "Authorization": "Bearer PASTE_TOKEN", "X-Roblox-MCP": "1" }
}
Expand All @@ -78,7 +78,7 @@ Add to `.vscode/mcp.json`:
```json
{
"servers": {
"brickbot": {
"roickbot": {
"type": "http",
"url": "http://127.0.0.1:7331/mcp",
"headers": { "Authorization": "Bearer PASTE_TOKEN", "X-Roblox-MCP": "1" }
Expand All @@ -95,7 +95,7 @@ Use the app's **Install MCP config** button, or add it manually (see
```json
{
"mcpServers": {
"brickbot": {
"roickbot": {
"type": "http",
"url": "http://127.0.0.1:7331/mcp",
"headers": { "Authorization": "Bearer PASTE_TOKEN", "X-Roblox-MCP": "1" }
Expand All @@ -115,7 +115,7 @@ won't connect. Add this to its `cline_mcp_settings.json`:
```json
{
"mcpServers": {
"brickbot": {
"roickbot": {
"type": "streamableHttp",
"url": "http://127.0.0.1:7331/mcp",
"headers": { "Authorization": "Bearer PASTE_TOKEN", "X-Roblox-MCP": "1" },
Expand Down
8 changes: 4 additions & 4 deletions docs/INSTALL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## 1. Install the desktop app

Download the installer for your platform from the
[Releases](https://github.com/tonyd365/brickbot/releases) page:
[Releases](https://github.com/tonyd365/roickbot/releases) page:

- **Windows**: `.exe` (x64 / arm64)
- **macOS**: `.dmg` (Apple Silicon arm64 / Intel x64)
Expand All @@ -14,7 +14,7 @@ right-click → Open) or SmartScreen (Windows: More info → Run anyway).
## 2. Start the service and connect Claude Code

1. Open the app and click **Start service**.
2. Click **Install MCP config** — this writes the `brickbot` server into your Claude Code
2. Click **Install MCP config** — this writes the `roickbot` server into your Claude Code
config (`~/.claude.json`) pointing at `http://127.0.0.1:7331/mcp` with your token.
3. Restart Claude Code so it picks up the new MCP server.

Expand All @@ -23,7 +23,7 @@ You can also configure it manually; see [`.mcp.json.example`](../.mcp.json.examp
## 3. Install the Studio plugin

1. In the app, if the plugin is offline, click **Install plugin** and choose where to save
`Brickbot.rbxmx`. The simplest location is your Studio **Plugins** folder:
`Roickbot.rbxmx`. The simplest location is your Studio **Plugins** folder:
- Windows: `%LOCALAPPDATA%\Roblox\Plugins`
- macOS: `~/Documents/Roblox/Plugins`
(Or in Studio, right-click the model and choose *Save as Local Plugin*.)
Expand All @@ -35,7 +35,7 @@ You can also configure it manually; see [`.mcp.json.example`](../.mcp.json.examp
```lua
game:GetService("HttpService").HttpEnabled = true
```
2. Open the **Brickbot** plugin panel (toolbar button).
2. Open the **Roickbot** plugin panel (toolbar button).
3. Copy the **token** from the desktop app, paste it into the plugin, and click **Connect**.
The plugin remembers the token and auto-connects next time.

Expand Down
28 changes: 14 additions & 14 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"name": "brickbot",
"name": "roickbot",
"version": "0.1.0",
"private": true,
"description": "Desktop app + MCP server that lets Claude / Claude Code control Roblox Studio.",
Expand All @@ -14,7 +14,7 @@
"build:desktop": "npm run build --workspace packages/desktop",
"typecheck": "npm run typecheck --workspace packages/core && npm run typecheck --workspace packages/desktop",
"test": "npm run test --workspace packages/core",
"build:plugin": "rojo build plugin/default.project.json -o dist/Brickbot.rbxmx",
"build:plugin": "rojo build plugin/default.project.json -o dist/Roickbot.rbxmx",
"dev:core": "npm run dev --workspace packages/core"
},
"engines": {
Expand Down
Loading
Loading