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.

All hook commands now support an optional --agent <name> flag for agent-aware execution. When provided, the agent name is available to hook handlers via the CONCLAUDE_AGENT_NAME environment variable.

New unified hook command structure that supports all hook types with optional agent awareness.

Terminal window
# Standard hook execution
echo '{"session_id":"...","tool_name":"Write",...}' | conclaude Hooks PreToolUse
# Agent-aware hook execution
conclaude Hooks PreToolUse --agent coder
conclaude Hooks Stop --agent tester

Options:

OptionDescription
--agent <name>Agent name for agent-aware hook execution

Note: Agent frontmatter hooks (.claude/agents/*.md) automatically use the --agent flag. Run conclaude init to inject hooks into agent files.


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

Terminal window
echo '{"session_id":"...","tool_name":"Write",...}' | conclaude Hooks PreToolUse
# or legacy:
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 Hooks PostToolUse
# or legacy:
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 Hooks Stop
# or legacy:
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

When using the --agent flag (automatically set in agent frontmatter hooks):

VariableDescription
CONCLAUDE_AGENT_NAMEAgent name passed via --agent flag (e.g., “coder”, “tester”, “stuck”)

Additional variables for SubagentStart and SubagentStop (payload-based):

VariableDescription
CONCLAUDE_AGENT_IDAgent identifier from payload (e.g., “adb0a8b”)
CONCLAUDE_SUBAGENT_TYPESubagent type (e.g., “implementation”) (SubagentStart only)
CONCLAUDE_AGENT_TRANSCRIPT_PATHPath to subagent transcript
CONCLAUDE_PERMISSION_MODEPermission mode (SubagentStart only)