| name | sensor-manager |
| description | Help users deploy, configure, manage, troubleshoot, and perform operations on LimaCharlie endpoint sensors across Windows, macOS, Linux, Chrome, and Edge platforms. |
LimaCharlie Sensor Manager
This skill provides comprehensive guidance for deploying, configuring, managing, and troubleshooting LimaCharlie endpoint sensors (also called endpoint agents). Use this skill when users need help with sensor installation, sensor commands, sensor management, tagging, versioning, or any sensor-related operations.
What You'll Find Here
- Quick Start: Deploy your first sensor in minutes
- Common Operations: The most frequently used sensor tasks
- Sensor Management: List, filter, tag, and organize sensors
- Installation Keys: Configure and use installation keys effectively
- Navigation: Find detailed guides for specific topics
For comprehensive information, see:
- Command Reference - All 60+ sensor commands with syntax and platform support
- Deployment Guide - Complete platform-specific installation instructions
- Troubleshooting Guide - Resolve connectivity, permissions, and performance issues
Sensor Overview
What are LimaCharlie Sensors?
LimaCharlie sensors (also called endpoint agents) are lightweight agents that run on endpoints to collect EDR (Endpoint Detection and Response) telemetry and forward it to the LimaCharlie cloud platform. Sensors provide deep visibility into endpoint activity while maintaining minimal performance impact.
Key Characteristics:
- Serverless, scalable solution for endpoint monitoring
- Support for Windows, macOS, Linux, Chrome, and Edge platforms
- Over 60 commands for file operations, memory operations, process operations, and more
- Single TCP connection over port 443 with pinned SSL certificates
- Two-component architecture: on-disk agent and over-the-air core
Sensor Architecture
The LimaCharlie endpoint agent consists of two independently versioned components:
- On-disk agent: Implements core identity, cryptography, and transport mechanisms. Rarely requires updates and typically remains static.
- Over-the-air core: The main component that receives frequent updates (every few weeks) and delivers advanced functionality. Can be easily updated via the LimaCharlie cloud. Update size is generally 3-5 MB.
Quick Start
Deploy Your First Sensor
1. Get your installation key:
- Navigate to Sensors > Installation Keys in the web app
- Copy an existing key or create a new one with appropriate tags
2. Choose your platform:
Windows:
# Download and install
hcp_win_x64_release.exe -i YOUR_INSTALLATION_KEY
macOS:
# Download, make executable, install
chmod +x lc_sensor
sudo ./lc_sensor -i YOUR_INSTALLATION_KEY
# Grant required permissions when prompted
Linux (Debian):
# Install with dpkg
echo "limacharlie limacharlie/installation_key string YOUR_KEY" | sudo debconf-set-selections && sudo dpkg -i limacharlie.deb
Linux (Other):
# Install with custom script
chmod +x lc_sensor
sudo ./lc_sensor -d YOUR_INSTALLATION_KEY
3. Verify enrollment:
- Check Sensors page in web app
- Your new sensor should appear within 1-2 minutes
For complete platform-specific instructions, see DEPLOYMENT.md.
Working with Timestamps
IMPORTANT: When users provide relative time offsets (e.g., "last hour", "past 24 hours", "last week"), you MUST dynamically compute the current epoch timestamp based on the actual current time. Never use hardcoded or placeholder timestamps.
Computing Current Epoch
import time
# Compute current time dynamically
current_epoch_seconds = int(time.time())
current_epoch_milliseconds = int(time.time() * 1000)
The granularity (seconds vs milliseconds) depends on the specific API or MCP tool. Always check the tool signature or API documentation to determine which unit to use.
Common Relative Time Calculations
Example: "Show sensor activity from the last hour"
end_time = int(time.time()) # Current time
start_time = end_time - 3600 # 1 hour ago
Common offsets (in seconds):
- 1 hour = 3600
- 24 hours = 86400
- 7 days = 604800
- 30 days = 2592000
For millisecond-based APIs, multiply by 1000.
Critical Rules
NEVER:
- Use hardcoded timestamps
- Use placeholder values like
1234567890 - Assume a specific current time
ALWAYS:
- Compute dynamically using
time.time() - Check the API/tool signature for correct granularity
- Verify the time range is valid (start < end)
Installation Keys
What are Installation Keys?
Installation keys are Base64-encoded strings that associate sensors with the correct Organization. They provide a way to label and control your deployment population.
Four Components of an Installation Key:
- Organization ID (OID): The Organization ID that this key should enroll into
- Installer ID (IID): Generated and associated with every installation key
- Tags: A list of tags automatically applied to sensors enrolling with the key
- Description: Helps differentiate uses of various keys
Managing Installation Keys
Installation keys can be managed on the Sensors > Installation Keys page in the web app.
Use Installation Keys for Classification
Use different installation keys to classify and organize your sensor deployments:
Examples:
- Key with "server" tag for server installations
- Key with "vip" tag for executive machines
- Key with "sales" tag for sales department
- Key with "production" tag for production environments
- Key with "staging" tag for staging environments
This enables you to:
- Write different detection and response rules for different host types
- Apply different security policies based on tags
- Organize and filter sensors effectively
Installation Key Best Practices
- Create multiple keys for different use cases
- Use descriptive names for easy identification
- Apply tags automatically via installation keys
- Document key usage for team reference
Example Key Structure:
prod-servers: Production servers with tagsproduction,serverprod-workstations: Production workstations with tagsproduction,workstationdev-servers: Development servers with tagsdevelopment,servervip-users: Executive machines with tagsvip,workstation
Proxy Support
The LimaCharlie sensor supports unauthenticated proxy tunneling through HTTP CONNECT.
Configuration:
Set the LC_PROXY environment variable to the DNS or hostname of the proxy:
LC_PROXY=proxy.corp.com:8080
Windows-specific:
- Use
LC_PROXY=-for auto-detection of globally-configured, unauthenticated proxy - The sensor will query:
HKLM\Software\Policies\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyServer - Use
LC_PROXY=!to explicitly disable proxy
Common Operations
1. List Running Processes
os_processes
Shows all running processes on the endpoint with PID, name, and path information.
2. Retrieve a File
file_get --path "C:\Windows\System32\suspicious.exe"
Downloads a file from the endpoint for analysis. The file is stored in the LimaCharlie cloud and available for download.
3. Network Isolate a Sensor
segregate_network
Isolates the endpoint from the network while maintaining connection to LimaCharlie. Use this during incident response to contain threats.
Restore network connectivity:
rejoin_network
4. Kill a Malicious Process
os_kill_process --pid 1234
Terminates a process by PID. Useful for stopping malicious processes during incident response.
5. Get System Information
os_version
Returns detailed OS version information including build, architecture, and system details.
For all available commands, see REFERENCE.md.
Sensor Management
Listing Sensors
In Web App:
- Navigate to Sensors section
- View all enrolled sensors with metadata
Via API/SDK (Python):
import limacharlie
lc = limacharlie.Manager()
for sensor in lc.sensors():
print(sensor.sid, sensor.hostname)
Filtering Sensors
Use Sensor Selector Expressions to filter sensors based on characteristics.
Available Fields
sid: Sensor IDoid: Organization IDiid: Installation Key IDplat: Platform name (windows, linux, macos, chrome, etc.)ext_plat: Extended platform namearch: Architecture (x86, x64, arm, arm64)enroll: Enrollment timestamp (epoch seconds)hostname: Hostnamemac_addr: Latest MAC addressalive: Last connection timestamp (epoch seconds)ext_ip: Last external IPint_ip: Last internal IPisolated: Boolean - network isolatedshould_isolate: Boolean - marked for isolationkernel: Boolean - has kernel-level visibilitydid: Device IDtags: List of tags
Operators
==: Equals!=: Not equalin: Element in list, or substring in stringnot in: Element not in list, or substring not in stringmatches: Matches regular expressionnot matches: Does not match regular expressioncontains: String contained within element
Example Selector Expressions
All sensors with "test" tag:
test in tags
All Windows boxes with internal IP starting with 10.3.x.x:
plat == windows and int_ip matches ^10\.3\..*
All Linux sensors with network isolation or "evil" tag:
plat == linux or (isolated == true or evil in tags)
All Azure-related platforms:
plat contains "azure"
All sensors with platform starting with a number (use backticks):
plat == `1password`
Tagging Sensors
Tag Use Cases
- Classification: Departments (sales, finance), usage type (workstation, server), importance (vip, critical)
- Automation: Trigger different detection rules, apply response actions, route detections to outputs
Adding Tags
- Via Installation Key: Tags automatically applied during enrollment
- Via API:
POST /{sid}/tags - Via D&R Rule: Use
add tagaction in response section - Via Web App: Click sensor to expand, then add/edit/remove tags
System Tags
Special tags that control sensor behavior:
lc:latest: Use latest sensor version (for testing)lc:stable: Use stable sensor versionlc:experimental: Use experimental sensor versionlc:no_kernel: Disable kernel componentlc:debug: Use debug version of sensorlc:limit-update: Only update version at startup/rebootlc:sleeper: Enter sleeper mode (minimal activity)lc:usage: Usage-based billing mode
Deleting Sensors
Via Web App: Navigate to sensor, click delete.
Via API/SDK:
import limacharlie
lc = limacharlie.Manager()
sensor = lc.sensor('SENSOR_ID')
sensor.delete()
Note: Deleting a sensor from the platform does not uninstall it from the endpoint. Use the uninstall command to remove the agent from the endpoint.
Versioning and Upgrades
Version Labels
LimaCharlie provides three version labels:
- Latest: Most recent release with new fixes and features
- Stable: Less frequently updated, ideal for slower update cadences
- Experimental: Beta version of next "Latest" release
Managing Sensor Versions
Organization-Level: Set the default sensor version for your organization via web interface or API.
Individual Sensor-Level: Use system tags to override organization default:
lc:latest: Receive latest versionlc:stable: Receive stable versionlc:experimental: Receive experimental version
Update Mechanisms
Manual Update: Click button in web interface to update all sensors in organization. Updates take effect within 20 minutes.
Auto-Update:
Apply lc:stable tag to automatically update to latest stable version upon release.
Staged Deployment:
- Tag representative sensors with
lc:latest - Monitor for issues (stability, performance, telemetry quality)
- If successful, update organization-level version
- Remove
lc:latesttag from test sensors
Best Practices for Updates
- Test First: Apply
lc:latestto small subset of representative systems - Monitor: Evaluate stability, performance, telemetry quality
- Diverse Testing: Test across different OS versions and workloads
- Gradual Rollout: Update organization-wide only after successful testing
- Rollback Plan: Keep
lc:stabletag ready for quick rollback - Update Timing: Schedule updates during maintenance windows
Quick Reference
Common Commands
# List processes
os_processes
# Get file
file_get --path "/path/to/file"
# Kill process
os_kill_process --pid 1234
# Network isolate
segregate_network
# Restore network
rejoin_network
# YARA scan
yara_scan --path "/path" --rule-name "signatures"
# Uninstall sensor
uninstall --is-confirmed
# Get system info
os_version
Sensor Selector Examples
# All Windows servers
plat == windows and server in tags
# All isolated sensors
isolated == true
# All sensors in production
production in tags
# All sensors not seen in 24 hours
alive < {timestamp_24h_ago}
# All VIP workstations
vip in tags and workstation in tags
System Tags Quick Reference
lc:latest - Use latest version
lc:stable - Use stable version
lc:experimental - Use experimental version
lc:no_kernel - Disable kernel component
lc:debug - Use debug version
lc:limit-update - Only update at startup
lc:sleeper - Enter sleeper mode
lc:usage - Usage-based billing
Navigation
Detailed Guides
- Command Reference: Complete list of all 60+ sensor commands with syntax, parameters, and platform support
- Deployment Guide: Platform-specific installation instructions for Windows, macOS, Linux, Docker, Chrome, and Edge
- Troubleshooting Guide: Resolve connectivity issues, permission problems, and performance concerns
Documentation References
- Installation Keys:
/limacharlie/doc/Sensors/installation-keys.md - Sensor Tags:
/limacharlie/doc/Sensors/sensor-tags.md - Sensor Connectivity:
/limacharlie/doc/Sensors/sensor-connectivity.md - Versioning:
/limacharlie/doc/Sensors/Endpoint_Agent/endpoint-agent-versioning-and-upgrades.md - Uninstallation:
/limacharlie/doc/Sensors/Endpoint_Agent/endpoint-agent-uninstallation.md - Sleeper Mode:
/limacharlie/doc/Sensors/Endpoint_Agent/sleeper.md
API/SDK Resources
- REST API: https://api.limacharlie.io/static/swagger/
- Python SDK: https://github.com/refractionPOINT/python-limacharlie
- Go SDK: https://github.com/refractionPOINT/go-limacharlie
Support
- Email: answers@limacharlie.io
- Community Slack: https://limacharlie.io/slack
- Documentation: https://doc.limacharlie.io
When to Use This Skill
Use the sensor-manager skill when users ask about:
- Installing or deploying LimaCharlie sensors
- Sensor commands and capabilities
- Managing sensors (listing, filtering, tagging)
- Troubleshooting sensor issues
- Sensor versioning and updates
- Network isolation
- Platform-specific installation (Windows, macOS, Linux, Chrome, Edge)
- Enterprise deployment (MDM, Intune, custom installers)
- Installation keys and sensor enrollment
- Uninstalling sensors
- Performance optimization
- Sleeper mode deployments
- Containerized deployments (Docker, Kubernetes)
- Proxy configuration
- Permission issues (especially macOS)
- Sensor connectivity
- Sensor health monitoring
This skill provides comprehensive, authoritative guidance for all sensor-related operations in LimaCharlie.