Python SDK and CLI for the LimaCharlie endpoint detection and response platform
Project description
LimaCharlie Python SDK & CLI
Python SDK and command-line interface for the LimaCharlie endpoint detection and response platform.
- Documentation — CLI reference, SDK guide, authentication
- Platform Docs | REST API | Issues
Installation
pip install limacharlie
docker run refractionpoint/limacharlie:latest --help
See Getting Started for Docker credential mounting and first steps.
Quick Start
limacharlie auth login --oid YOUR_ORG_ID --api-key YOUR_API_KEY
limacharlie auth whoami
limacharlie org info
limacharlie sensor list
See Authentication for OAuth, environments, credential resolution, JWT caching, and config directory migration.
Documentation
| Guide | Topics |
|---|---|
| Getting Started | Installation, Docker, first steps |
| Authentication | API keys, OAuth, environments, JWT caching, config migration |
| CLI Overview | Command pattern, output formats, filtering, discovery |
| SDK Overview | Architecture, setup, class reference |
Full reference: doc/README.md
Shell Completion
The CLI supports tab-completion for all commands, subcommands, and options.
Bash - add to ~/.bashrc:
eval "$(limacharlie completion bash)"
Zsh - add to ~/.zshrc:
eval "$(limacharlie completion zsh)"
Fish - run once:
mkdir -p ~/.config/fish/completions
limacharlie completion fish > ~/.config/fish/completions/limacharlie.fish
Restart your shell (or source the rc file) for completions to take effect.
Static completion files
If you prefer not to run eval on every shell start, you can write the completion script to a file once. This is slightly faster at shell startup but needs to be re-run after upgrading to pick up new commands and options.
Bash:
mkdir -p ~/.local/share/bash-completion/completions
limacharlie completion bash > ~/.local/share/bash-completion/completions/limacharlie
Zsh:
mkdir -p ~/.zfunc
limacharlie completion zsh > ~/.zfunc/_limacharlie
Ensure ~/.zfunc is in your fpath by adding this to ~/.zshrc (before compinit):
fpath=(~/.zfunc $fpath)
autoload -Uz compinit && compinit
Development
Setup
git clone https://github.com/refractionPOINT/python-limacharlie.git
cd python-limacharlie
python3 -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]"
The editable install (-e) means changes to the source code take effect immediately without reinstalling.
Running the CLI
After the editable install, the limacharlie command is available in your venv:
limacharlie --version
limacharlie --help
limacharlie sensor list --help
Running Tests
Unit tests run without any credentials or network access:
# All unit tests
pytest tests/unit/ -v
# Single test file
pytest tests/unit/test_client.py -v
# Single test case
pytest tests/unit/test_client.py::TestClientInit::test_creates_with_explicit_creds -v
Integration tests require a real LimaCharlie organization:
pytest tests/integration/ --oid YOUR_ORG_ID --key YOUR_API_KEY -v
Building
pip install build && python -m build
pip install dist/limacharlie-*-py3-none-any.whl && limacharlie version
Releasing
Releases are published to PyPI automatically via GitHub Actions when a version tag is pushed. The package version is derived from the git tag using setuptools-scm — there is no hardcoded version to bump.
git tag 5.1.0
git push origin 5.1.0
The workflow runs unit tests, builds the package, and publishes to PyPI using Trusted Publishers (OIDC) — no API tokens or secrets required. See .github/workflows/publish-to-pypi.yml for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file limacharlie-5.2.1.tar.gz.
File metadata
- Download URL: limacharlie-5.2.1.tar.gz
- Upload date:
- Size: 491.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f9258bf5d1f41254927d954e42fa6dc1696c7ac829e421dbbef3b06c13c0d44e
|
|
| MD5 |
10b9cb7fcdb50a41beb5adbf0588c2e8
|
|
| BLAKE2b-256 |
e9d257ab69dceb8ca8bbf61161b631f39407171ea15df24f9ea4e8d954885a7d
|
Provenance
The following attestation bundles were made for limacharlie-5.2.1.tar.gz:
Publisher:
publish-to-pypi.yml on refractionPOINT/python-limacharlie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
limacharlie-5.2.1.tar.gz -
Subject digest:
f9258bf5d1f41254927d954e42fa6dc1696c7ac829e421dbbef3b06c13c0d44e - Sigstore transparency entry: 1228571270
- Sigstore integration time:
-
Permalink:
refractionPOINT/python-limacharlie@604b8196ea7a81a3302723ddde9ae291c3be3ab3 -
Branch / Tag:
refs/tags/5.2.1 - Owner: https://github.com/refractionPOINT
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@604b8196ea7a81a3302723ddde9ae291c3be3ab3 -
Trigger Event:
push
-
Statement type:
File details
Details for the file limacharlie-5.2.1-py3-none-any.whl.
File metadata
- Download URL: limacharlie-5.2.1-py3-none-any.whl
- Upload date:
- Size: 305.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c51a7a105444f546dfdb9413862b627bf50da0576bc6ed7447fa298f3ffc61b6
|
|
| MD5 |
b7c9bf91561639de78659c6b4953ce73
|
|
| BLAKE2b-256 |
1b0aa6df0ae396930bb3f1f39ba1d98cb5e34679c4667bc1908c6e462de26b4e
|
Provenance
The following attestation bundles were made for limacharlie-5.2.1-py3-none-any.whl:
Publisher:
publish-to-pypi.yml on refractionPOINT/python-limacharlie
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
limacharlie-5.2.1-py3-none-any.whl -
Subject digest:
c51a7a105444f546dfdb9413862b627bf50da0576bc6ed7447fa298f3ffc61b6 - Sigstore transparency entry: 1228571287
- Sigstore integration time:
-
Permalink:
refractionPOINT/python-limacharlie@604b8196ea7a81a3302723ddde9ae291c3be3ab3 -
Branch / Tag:
refs/tags/5.2.1 - Owner: https://github.com/refractionPOINT
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-to-pypi.yml@604b8196ea7a81a3302723ddde9ae291c3be3ab3 -
Trigger Event:
push
-
Statement type: