{
  "markdown": "# roxyon-devtools\n\nTooling that lets a developer — or an AI assistant acting for one — build with\n**LumenJS**, use the **Roxyon BaaS**, and **deploy to Roxyon infrastructure**\nfrom anywhere.\n\n| Package | What it is | Status |\n|---|---|---|\n| [`@roxyon/api-client`](packages/api-client) | Typed client for the Roxyon BaaS (`RX` engine) + the Applications/Sites deploy endpoints | **M1** |\n| [`@roxyon/deploy-core`](packages/deploy-core) | Shared deploy pipeline — project detection, archiving, build/upload/poll orchestration | **M1** |\n| [`@roxyon/cli`](packages/cli) | `roxyon` — `login`, `init`, `deploy`, `logs`, `env`, `restart`, `open`, `link` | **M1** |\n| [`@roxyon/mcp`](packages/mcp-server) | MCP server — **stdio** (`roxyon-mcp`) for local clients, **remote Streamable HTTP + OAuth** (`roxyon-mcp-http`) for hosted connectors | **M2** |\n| [`backend/`](backend) | The two new console endpoints + node script (`/applications/deploy`, `/sites/deploy`, `app-source-apply.sh`) | written & wired in `_configs`, not synced |\n| [`docs/`](docs) | `llms.txt`, BaaS OpenAPI 3.1, `AGENTS.md` template, distribution checklist | **M3** — drafted |\n| [`create-roxyon-app`](packages/create-roxyon-app) | `npm create roxyon-app` — LumenJS / Node templates, emits `AGENTS.md` + `roxyon.json` + `llms.txt` + editor rules | **M4** |\n| [`integrations/`](integrations) | Per-assistant wrappers — Claude Code plugin, ChatGPT GPT, Cursor/etc. install snippets | **M5** |\n\nSee [`docs/roadmap.md`](docs/roadmap.md) for the full plan.\n\n## Quick start\n\n```bash\nnpm create roxyon-app@latest my-app     # LumenJS or Node, wired for deploy\ncd my-app\nnpm i -g @roxyon/cli && roxyon login\nroxyon deploy                            # builds + uploads + waits for it to go live\n```\n\nExisting project instead of a new one: `roxyon init` writes `roxyon.json`, then\n`roxyon deploy`.\n\nCI (no interactive login) — create a token once, then use it as `ROXYON_TOKEN`:\n\n```bash\nroxyon token create ci --scopes deploy,logs      # prints roxp_… once\nROXYON_TOKEN=roxp_xxx roxyon deploy --no-follow   # first run also creates the app\n```\n\n### From an AI assistant\n\n**Local clients** (Claude Code, Cursor, Windsurf, Cline, Gemini CLI) — add the\nstdio server:\n\n```json\n{ \"mcpServers\": { \"roxyon\": { \"command\": \"npx\", \"args\": [\"-y\", \"@roxyon/mcp\"] } } }\n```\n\nthen the assistant calls `roxyon_init` and `roxyon_deploy`.\n\n**Claude Code plugin** — bundles the server + `/roxyon-deploy` and `/roxyon-new`\nslash commands + a skill:\n\n```\n/plugin marketplace add bea-technology/roxyon-devtools\n/plugin install roxyon\n```\n\n**Remote connectors** (claude.ai, ChatGPT, Cursor URL) — connect to\n`https://mcp.roxyon.com/mcp` and sign in with your Roxyon account (OAuth, no\ntoken to paste). `roxyon_init` / `roxyon_deploy` are local-only there; use\n`roxyon_link_github` for push-to-deploy.\n\n**Add to Cursor:**\n\n[![Add to Cursor](https://cursor.com/deeplink/mcp-install-dark.svg)](cursor://anysphere.cursor-deeplink/mcp/install?name=roxyon&config=eyJjb21tYW5kIjoibnB4IiwiYXJncyI6WyIteSIsIkByb3h5b24vbWNwIl19)\n\nSee [`packages/mcp-server`](packages/mcp-server) and\n[`integrations/mcp-clients.md`](integrations/mcp-clients.md).\n\n## Develop\n\n```bash\ncorepack enable pnpm\npnpm install\npnpm build        # all packages\npnpm test\npnpm typecheck\npnpm lint\n```\n\nNode ≥ 20. The repo is a pnpm workspace; `tsup` builds each package, `vitest`\ntests, `biome` lints + formats, `changesets` versions releases.\n\n## How deploy works\n\n- **LumenJS / static** (`runtime: \"lumen\"`, `kind: \"static\"`): `roxyon deploy`\n  runs `lm build --serverless`, tars `dist/`, and `POST`s it to `/sites/deploy`,\n  which extracts it into the host's document root. Served directly by nginx.\n- **Node / Python / PHP** (`kind: \"app\"`): the tarball goes to\n  `/applications/deploy`, which lands it in the application's `SourcePath` and\n  bumps `ConfigRevision`. The existing reconciler builds it in an isolated\n  release dir and runs it under a systemd unit. Git remotes connected with\n  `roxyon link` auto-deploy on push via the existing webhook.\n\nAuthentication is a Roxyon **session token** today (stored `0600` in\n`~/.roxyon/config.json`); scoped **Personal Access Tokens** land in M1.5.\n",
  "bytes": 4196,
  "sha": "42b58d531485c56e543ea77bca42d4911ed052849ccd0fb189daff9fb967ca36",
  "repo_slug": "bea-technology/roxyon-devtools",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_bea_technology_roxyon_09c2778d/readme"
}