CI & Headless Mode

athena-flow exec "<prompt>"

Runs Athena non-interactively. No TUI, no input bar. Designed for CI pipelines and scripts.

Exec-Only Flags

FlagDescriptionDefault
--jsonEmit JSONL events to stdoutoff
--output-last-message=<path>Write final assistant message to file
--ephemeralDon't persist session dataoff
--on-permission=<policy>Permission request policyfail
--on-question=<policy>AskUserQuestion policyfail
--timeout-ms=<ms>Hard timeout for the run
--continue[=<sessionId>]Resume most recent or specific session

Permission and Question Policies

--on-permission

ValueBehavior
allowAutomatically allow all
denyAutomatically deny all
failFail the run on any request (default)

--on-question

ValueBehavior
emptyRespond with empty string
failFail the run on any question (default)

Examples

# CI-friendly: JSON output, auto-deny permissions, ignore questions
athena-flow exec "run tests" --json --on-permission=deny --on-question=empty
 
# With timeout
athena-flow exec "lint all files" --timeout-ms=60000
 
# Ephemeral (no session persistence)
athena-flow exec "check for security issues" --ephemeral
 
# Save the final message
athena-flow exec "summarize changes" --output-last-message=./summary.txt
 
# Continue a previous session
athena-flow exec "continue previous work" --continue

GitHub Actions

- name: Run Athena
  run: |
    npx @athenaflow/cli exec "run all tests and report results" \
      --json \
      --on-permission=deny \
      --on-question=empty \
      --timeout-ms=300000 \
      --ephemeral

GitLab CI

athena-test:
  script:
    - npx @athenaflow/cli exec "run all tests and report results"
        --json
        --on-permission=deny
        --on-question=empty
        --timeout-ms=300000
        --ephemeral

Exit Codes

CodeMeaning
0Success
1General error
2Permission request with --on-permission=fail
3Question with --on-question=fail
4Timeout
5Agent error
6Session not found (for --continue)
7Hook registration failure

All standard flags (--workflow, --isolation, --plugin, --project-dir, --model) also work in exec mode.