Skip to content

CLI Reference

conclaude provides a command-line interface for initializing configuration, validating settings, and handling Claude Code lifecycle hooks.

These options apply to all commands:

OptionDescription
--versionPrint version information
--helpPrint help information

Initialize conclaude configuration and Claude Code hooks in the current directory.

Terminal window
conclaude init [OPTIONS]

Options:

OptionDescription
--config-path <PATH>Custom path for .conclaude.yaml file
--claude-path <PATH>Custom path for .claude directory
-f, --forceOverwrite existing configuration files
--schema-url <URL>Custom schema URL for YAML language server header

Examples:

Terminal window
# Initialize with defaults
conclaude init
# Force overwrite existing config
conclaude init --force
# Custom configuration path
conclaude init --config-path ./config/conclaude.yaml

Created Files:

  • .conclaude.yaml — Project configuration with YAML language server support
  • .claude/settings.json — Claude Code hook configuration (created or updated)

Validate conclaude configuration file syntax and schema compliance.

Terminal window
conclaude validate [OPTIONS]

Options:

OptionDescription
--config-path <PATH>Path to configuration file or directory to validate

Examples:

Terminal window
# Validate default configuration
conclaude validate
# Validate specific file
conclaude validate --config-path ./production.yaml
# Use in CI scripts
conclaude validate && echo "Config valid" || exit 1

Exit Codes:

CodeMeaning
0Configuration is valid
1Validation failed (syntax error, schema violation, file not found)

Display file and directory protection settings from configuration.

Terminal window
conclaude visualize [OPTIONS]

Options:

OptionDescription
-r, --rule <RULE>Specific rule to visualize
--show-matchesShow files that match the rule patterns

Available Rules:

  • uneditableFiles — Files protected from editing
  • preventRootAdditions — Root directory protection status
  • toolUsageValidation — Tool-specific validation rules

Examples:

Terminal window
# Show all rules overview
conclaude visualize
# Show specific rule details
conclaude visualize --rule uneditableFiles
# Show matching files
conclaude visualize --rule uneditableFiles --show-matches

These commands are called by Claude Code during session lifecycle events. They read JSON payloads from stdin and output results.

Fired before Claude uses any tool (Write, Bash, Read, etc.).

Terminal window
echo '{"session_id":"...","tool_name":"Write",...}' | conclaude PreToolUse

Use Cases:

  • Block file creation at project root
  • Protect files from editing
  • Validate tool inputs

Fired after a tool operation completes.

Terminal window
echo '{"session_id":"...","tool_name":"Write",...}' | conclaude PostToolUse

Use Cases:

  • Audit logging
  • Performance monitoring
  • Post-processing validation

Fired when Claude finishes a task and the session is about to end.

Terminal window
echo '{"session_id":"...","stop_hook_active":true,...}' | conclaude Stop

Use Cases:

  • Run linting and formatting checks
  • Execute test suites
  • Verify build succeeds
  • Continuous validation (infinite mode)

Fired when a Claude Code session begins.

Terminal window
echo '{"session_id":"...",...}' | conclaude SessionStart

Use Cases:

  • Initialize session logging
  • Set up monitoring
  • Prepare workspace

Fired when the user submits input to Claude.

Terminal window
echo '{"session_id":"...","prompt":"...",...}' | conclaude UserPromptSubmit

Use Cases:

  • Log user prompts
  • Pre-process input

Fired when a Claude subagent (coder, tester, etc.) begins work.

Terminal window
echo '{"session_id":"...","agent_id":"coder",...}' | conclaude SubagentStart

Use Cases:

  • Track subagent initialization
  • Resource allocation
  • Monitoring setup

Fired when a Claude subagent completes its work.

Terminal window
echo '{"session_id":"...","agent_id":"coder",...}' | conclaude SubagentStop

Use Cases:

  • Log subagent completion
  • Cleanup operations
  • Metrics collection

Fired for system notifications.

Terminal window
echo '{"session_id":"...",...}' | conclaude Notification

Fired before transcript compaction.

Terminal window
echo '{"session_id":"...",...}' | conclaude PreCompact

Fired when a tool requests permission.

Terminal window
echo '{"session_id":"...",...}' | conclaude PermissionRequest

Fired when a session terminates.

Terminal window
echo '{"session_id":"...",...}' | conclaude SessionEnd

All hook commands use consistent exit codes:

CodeMeaning
0Success — operation allowed to proceed
1Error — validation failure, parsing error, or handler crash
2Blocked — hook explicitly blocked the operation
VariableDescription
CONCLAUDE_LOG_LEVELLog level: debug, info, warn, error
CONCLAUDE_DISABLE_FILE_LOGGINGDisable logging to temporary files

Available to commands executed by hooks:

VariableDescription
CONCLAUDE_SESSION_IDUnique session identifier
CONCLAUDE_TRANSCRIPT_PATHPath to session transcript file
CONCLAUDE_CWDCurrent working directory
CONCLAUDE_HOOK_EVENTName of executing hook
CONCLAUDE_CONFIG_DIRDirectory containing config file

Additional variables for SubagentStart and SubagentStop:

VariableDescription
CONCLAUDE_AGENT_IDRaw agent identifier (e.g., “adb0a8b”)
CONCLAUDE_AGENT_NAMESemantic agent name (e.g., “coder”, “tester”, “stuck”) extracted from main transcript. Falls back to CONCLAUDE_AGENT_ID if extraction fails. (SubagentStop only)
CONCLAUDE_SUBAGENT_TYPESubagent type (e.g., “implementation”) (SubagentStart only)
CONCLAUDE_AGENT_TRANSCRIPT_PATHPath to subagent transcript
CONCLAUDE_PERMISSION_MODEPermission mode (SubagentStart only)