@abyrd9/harbor-cli
Version:
A CLI tool for orchestrating local development services in a tmux session. Perfect for microservices and polyglot projects with automatic service discovery and before/after script support.
105 lines (98 loc) • 3.39 kB
JSON
{
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "https://raw.githubusercontent.com/Abyrd9/harbor-cli/main/harbor.package-json.schema.json",
"title": "Harbor Configuration in package.json",
"description": "Schema extension for the 'harbor' property in package.json",
"type": "object",
"properties": {
"harbor": {
"type": "object",
"description": "Harbor CLI configuration for orchestrating local development services",
"required": ["services"],
"properties": {
"services": {
"type": "array",
"description": "List of development services to run",
"items": {
"type": "object",
"required": ["name", "path"],
"properties": {
"name": {
"type": "string",
"description": "Display name for the service (shown in the terminal UI)"
},
"path": {
"type": "string",
"description": "Relative path to the service directory from the project root"
},
"command": {
"type": "string",
"description": "Command to start the service (e.g., 'bun run dev', 'go run .')"
},
"log": {
"type": "boolean",
"description": "Whether to log output to a file in .harbor/logs/",
"default": false
},
"maxLogLines": {
"type": "integer",
"description": "Maximum number of lines to keep in the log file",
"minimum": 1
},
"canAccess": {
"type": "array",
"items": { "type": "string" },
"description": "Names of other services this pane can send commands to via hail/survey/parley"
}
},
"additionalProperties": false
}
},
"sessionName": {
"type": "string",
"description": "Custom name for tmux session (default: local-dev-test)",
"pattern": "^[a-zA-Z0-9_-]+$"
},
"before": {
"type": "array",
"description": "Scripts to run before starting services",
"items": {
"type": "object",
"required": ["path", "command"],
"properties": {
"path": {
"type": "string",
"description": "Relative path to run the command from"
},
"command": {
"type": "string",
"description": "Command to execute"
}
},
"additionalProperties": false
}
},
"after": {
"type": "array",
"description": "Scripts to run after all services stop",
"items": {
"type": "object",
"required": ["path", "command"],
"properties": {
"path": {
"type": "string",
"description": "Relative path to run the command from"
},
"command": {
"type": "string",
"description": "Command to execute"
}
},
"additionalProperties": false
}
}
},
"additionalProperties": false
}
}
}