Writes the few project files each client reads (instructions and a remote MCP entry, plus every plugin hook and skill as committed setup for Claude cloud and a setup script for Codex cloud) into the project. Safe to repeat: it only changes what it owns, keeps your other settings, and writes no credential; sign in happens in the client. Use –surface cloud for Cursor’s cloud agent file. Claude cloud needs the built plugin (–marketplace-root). Every capability the client lacks is labelled advisory or unavailable by the compatibility suite.
Usage
overlane client install client [--surface local|cloud] [--dir DIR] [--service URL] [--marketplace-root DIR] [--dry-run]Arguments
| Argument | Required | Description |
|---|---|---|
client |
yes | grok | cursor | gemini | claude | codex |
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--surface |
one of local, cloud |
no | local |
local files, or the files a cloud agent also needs |
--dir |
string | no | Project directory (default: the current directory) | |
--service |
string | no | Service address (https); default is the hosted service | |
--marketplace-root |
string | no | Folder holding the built claude/ and codex/ plugin marketplaces (Claude cloud) | |
--dry-run |
boolean | no | Print the requests and file changes this command would make, then stop. Needs no credentials. |
Examples
overlane client install cursor
overlane client install gemini --dry-run
overlane client install claude --surface cloud --marketplace-root dist/plugins
overlane client install codex --surface cloudBehavior
- Effect:
write(changes local or hosted state). - Needs credentials: no. Uses the network: no.
- Supports
--dry-run: yes. Accepts--force: no. - Machine-readable description:
overlane schema client install.
Result
With --json (the default when stdout is not a terminal) the command prints this JSON Schema’s shape on stdout.
{
"anyOf": [
{
"type": "object",
"properties": {
"client": {
"type": "string",
"enum": [
"grok",
"cursor",
"gemini",
"claude",
"codex"
]
},
"surface": {
"type": "string",
"enum": [
"local",
"cloud"
]
},
"dir": {
"type": "string"
},
"files": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"created",
"updated",
"unchanged"
]
}
},
"required": [
"path",
"action"
],
"additionalProperties": false
}
},
"next": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"client",
"surface",
"dir",
"files",
"next"
],
"additionalProperties": false
},
{
"type": "object",
"properties": {
"dryRun": {
"type": "boolean",
"const": true
},
"service": {
"type": "string"
},
"requests": {
"type": "array",
"items": {
"type": "object",
"properties": {
"method": {
"type": "string"
},
"path": {
"type": "string"
},
"body": {},
"note": {
"type": "string"
}
},
"required": [
"method",
"path"
],
"additionalProperties": false
}
},
"commands": {
"type": "array",
"items": {
"type": "string"
}
},
"writes": {
"type": "array",
"items": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"action": {
"type": "string",
"enum": [
"write",
"append",
"delete"
]
},
"description": {
"type": "string"
}
},
"required": [
"path",
"action",
"description"
],
"additionalProperties": false
}
},
"notes": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"dryRun",
"requests",
"commands",
"writes",
"notes"
],
"additionalProperties": false
}
]
}See exit codes for the status the process returns.