Advanced Scripting

Most commands support --format=json for easy parsing with jq:

Get transaction count by category:

kick transactions list --format=json | \
  jq 'group_by(.category) | map({category: .[0].category, count: length})'

Find largest transactions:

kick transactions list --format=json | \
  jq 'sort_by(.amount) | reverse | .[0:10]'

Calculate averages:

kick transactions list --format=json | \
  jq 'group_by(.counterparty) | map({counterparty: .[0].counterparty, avg: (map(.amount) | add / length)})'

Environment variables

Set defaults to avoid repeating flags:

export KICK_WORKSPACE="Client Name"
export KICK_ENTITY="ACME Corp"
export KICK_FORMAT="json"

# Commands use these defaults
kick transactions list
kick reports pl --period="2026-01"

Available variables:

  • KICK_WORKSPACE — Default workspace

  • KICK_ENTITY — Default entity

  • KICK_FORMAT — Default output format

Configuration file

Store settings in ~/.kick/config.yaml:

Commands automatically use these settings unless overridden with flags.


Scheduling Scripts

Run scripts automatically with cron (Linux/Mac):

For Windows, use Task Scheduler.

Last updated

Was this helpful?