Skip to main content

CLI tool for Splunk Enterprise SIEM operations.

Project description

splunkctl

CLI tool for Splunk Enterprise SIEM operations.

Query, inspect, and manage a remote Splunk Enterprise instance from your laptop. Built on the splunk-sdk-python fork with Click.

Install

pip install splunkctl
pip install git+https://github.com/dannyota/splunk-sdk-python@splunkctl

Requires Python 3.13+. The second line installs the forked SDK which adds dashboard, lookup, and HEC token support. Without it, core commands (search, rules, alerts, indexes, inputs, apps, users) still work.

Development

git clone https://github.com/dannyota/splunkctl
cd splunkctl
pip install -e .
splunkctl --version

Quick start

splunkctl config init                         # interactive setup
splunkctl doctor                              # check connection, auth, permissions
splunkctl search run 'index=main | head 10'   # run a search
splunkctl rules list                          # list detection rules

Commands

Group Description
doctor Connection, auth, health, and permissions check
config Setup, show config, test connectivity
info Server info (version, OS, license)
search Run, export, oneshot, upload, job management
rules Detection rules — CRUD, import/export (YAML)
alerts Fired alerts, alert actions, suppression
dashboards Dashboard CRUD (XML)
indexes Index management
inputs Data inputs (monitor, tcp, udp, script, http)
lookups Lookup table CRUD (CSV, mmdb)
hec HEC token management
parsers Source types and field extractions
apps App install (.spl/.tar.gz), uninstall, update
users User and role management
commands Machine-readable command tree (JSON)
skill Embedded agent operating guide

Key features

Detection-as-code

Export existing rules to YAML, version control them, deploy across instances:

splunkctl rules export --path detections.yml
splunkctl rules import --path detections.yml        # dry-run preview
splunkctl --yes rules import --path detections.yml  # apply

Remote file operations

Upload files from your laptop without SSH access to the server:

# Upload threat intel, logs, or sample data for indexing
splunkctl --yes search upload --path threats.csv --index threat_intel --sourcetype csv

# Upload lookup tables (CSV or GeoIP mmdb)
splunkctl --yes lookups upload --name threats.csv --path threats.csv

# Install apps from local .spl/.tar.gz packages
splunkctl --yes apps install --path TA_windows.spl

Diagnostics

splunkctl doctor             # check everything: connection, auth, health, permissions
splunkctl doctor --json      # machine-readable output

Global flags

--json              Force JSON output
--format FMT        Output format: table, json, csv, jsonl
--fields f1,f2      Project specific fields
--out FILE          Write output to file
--yes / -y          Apply mutations (skip dry-run preview)
--timeout N         Request timeout in seconds (default 30)
--config FILE       Config file path
--debug             HTTP request/response logging

Dry-run by default

All write operations preview what would change. Pass --yes to apply.

splunkctl rules delete 'My Rule'          # shows preview only
splunkctl rules delete 'My Rule' --yes    # actually deletes

Output formats

splunkctl rules list                      # table (TTY) or JSON (pipe)
splunkctl rules list --json               # force JSON
splunkctl rules list --format csv         # CSV
splunkctl rules list --fields name,cron   # project fields
splunkctl rules list --out rules.json     # write to file

SDK fork

splunkctl depends on a fork of splunk-sdk-python that adds entity classes missing from the upstream SDK:

Entity Service property Purpose
Dashboard service.dashboards Dashboard CRUD
LookupTableFile service.lookup_table_files Lookup table metadata + download
HECToken service.hec_tokens HEC token management

Install the fork directly:

pip install git+https://github.com/dannyota/splunk-sdk-python@splunkctl

Agent integration

splunkctl ships with an embedded operating guide for AI agents (Claude Code, etc.):

splunkctl skill                           # print the guide
splunkctl skill install                   # install to ~/.claude/skills/
splunkctl commands                        # JSON command tree for discovery

License

Apache-2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

splunkctl-0.3.1.tar.gz (56.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

splunkctl-0.3.1-py3-none-any.whl (65.2 kB view details)

Uploaded Python 3

File details

Details for the file splunkctl-0.3.1.tar.gz.

File metadata

  • Download URL: splunkctl-0.3.1.tar.gz
  • Upload date:
  • Size: 56.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splunkctl-0.3.1.tar.gz
Algorithm Hash digest
SHA256 dbf1a796c6a18754f3dea71cf5e2f5f87c5364bfd4584cc3201a98f4904a614f
MD5 e9725d01137f92e002ff24252b0b844e
BLAKE2b-256 c0864e5d38d661184877af530eb364a595a1fb9488eee109789d48c9eb6578e6

See more details on using hashes here.

Provenance

The following attestation bundles were made for splunkctl-0.3.1.tar.gz:

Publisher: publish.yml on dannyota/splunkctl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file splunkctl-0.3.1-py3-none-any.whl.

File metadata

  • Download URL: splunkctl-0.3.1-py3-none-any.whl
  • Upload date:
  • Size: 65.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for splunkctl-0.3.1-py3-none-any.whl
Algorithm Hash digest
SHA256 523f24efcc1e81640fe13971c0d75ef1fea44bd051fd7e3c36d39a766cc4baf8
MD5 72a1ab3f19ea43ead4e38949e3564d7a
BLAKE2b-256 e58ed7b7b62c8d3399b85ddfeaa43e720ae973211a830b160af4887537585882

See more details on using hashes here.

Provenance

The following attestation bundles were made for splunkctl-0.3.1-py3-none-any.whl:

Publisher: publish.yml on dannyota/splunkctl

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page