UNPKG

@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.

98 lines (96 loc) 3 kB
{ "$schema": "http://json-schema.org/draft-07/schema#", "$id": "https://raw.githubusercontent.com/Abyrd9/harbor-cli/main/harbor.schema.json", "title": "Harbor Configuration", "description": "Configuration schema for Harbor CLI - a tool for running multiple development services", "type": "object", "required": ["services"], "properties": { "$schema": { "type": "string", "description": "JSON Schema reference for IDE IntelliSense" }, "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 the 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 }