Writes the installed Overlane plugin for Claude Code as one .zip file. Upload it on claude.ai (Customize > Plugins > Add > Upload plugin) and add it to a Claude project (Project settings > Plugins): a project’s cloud threads never run a repository’s own hooks, and this is how they get Overlane’s. In a repository with Overlane’s setup committed, the plugin signs the thread in and connects it as it starts, refuses edits until it is connected and a task is held, and stays silent wherever the repository’s own hooks already run. The file holds no credential.
Usage
overlane client package client [--out FILE] [--marketplace-root DIR] [--dry-run]Arguments
| Argument | Required | Description |
|---|---|---|
client |
yes | claude |
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--out |
string | no | Where to write the file (default: overlane-claude-plugin.zip in the current directory) | |
--marketplace-root |
string | no | Folder holding the built claude/ plugin marketplace (default: the installed CLI’s) | |
--dry-run |
boolean | no | Print the requests and file changes this command would make, then stop. Needs no credentials. |
Examples
overlane client package claude
overlane client package claude --out ~/Downloads/overlane.zipBehavior
- 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 package.
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",
"const": "claude"
},
"file": {
"type": "string"
},
"bytes": {
"type": "number"
},
"next": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"client",
"file",
"bytes",
"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.