artifact-collector

Use this skill when users need to collect, manage, or analyze forensic artifacts such as files, memory dumps, Windows Event Logs, Mac Unified Logs, or network packet captures (PCAP) from endpoints.

16 stars

Best use case

artifact-collector is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use this skill when users need to collect, manage, or analyze forensic artifacts such as files, memory dumps, Windows Event Logs, Mac Unified Logs, or network packet captures (PCAP) from endpoints.

Teams using artifact-collector should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/artifact-collector/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/backend/artifact-collector/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/artifact-collector/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How artifact-collector Compares

Feature / Agentartifact-collectorStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use this skill when users need to collect, manage, or analyze forensic artifacts such as files, memory dumps, Windows Event Logs, Mac Unified Logs, or network packet captures (PCAP) from endpoints.

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# LimaCharlie Artifact Collector

This skill provides comprehensive guidance for collecting and managing forensic artifacts from endpoints using LimaCharlie. Use this skill when users need to gather evidence, collect files, capture memory, stream logs, or perform forensic investigations.

## Quick Navigation

- **SKILL.md** (this file): Overview, quick start, common workflows
- **[REFERENCE.md](REFERENCE.md)**: Complete command syntax and parameters
- **[EXAMPLES.md](EXAMPLES.md)**: 10 detailed investigation scenarios
- **[TROUBLESHOOTING.md](TROUBLESHOOTING.md)**: Common issues and solutions

---

## Artifact Collection Overview

### What are Artifacts?

Artifacts are pieces of forensic evidence collected from endpoints during security investigations or incident response. In LimaCharlie, artifacts can include:

- Files from disk
- Memory dumps (full system or process-specific)
- Windows Event Log (WEL) data
- Mac Unified Log (MUL) data
- Network packet captures (PCAP)
- File system metadata (MFT)

### Why Collect Artifacts?

Artifact collection is critical for:
- **Incident Response**: Gathering evidence during security incidents
- **Forensic Analysis**: Conducting detailed investigations
- **Threat Hunting**: Searching for indicators of compromise
- **Compliance**: Meeting regulatory evidence preservation requirements
- **Malware Analysis**: Collecting suspicious files and memory for analysis

### Prerequisites

To use artifact collection features, you must:

1. Enable the **Artifact Extension** in your organization
2. Enable the **Reliable Tasking Extension** (required dependency)
3. Configure artifact collection rules (optional, for automated collection)

**Note on Billing**: While the Artifact extension is free to enable, ingested artifacts incur charges. Refer to LimaCharlie pricing for artifact ingestion and retention costs.

---

## Artifact Types Overview

### 1. Files
Collect files from endpoints for analysis or preservation.

**Use Cases**: Retrieve suspicious executables, collect log files, gather configuration files

**Collection Pattern**: Use file paths with wildcards or exact paths
- `C:\Users\*\Downloads\*.exe`
- `/var/log/auth.log`

### 2. Memory Dumps
Capture volatile memory for forensic analysis.

**Types**: Full Memory Dumps, Process Memory, Memory Strings

**Use Cases**: Detect in-memory malware, analyze running processes, extract encryption keys

### 3. Windows Event Logs (WEL)
Stream or collect Windows Event Log data.

**Collection Modes**:
- **Real-time streaming**: Use `wel://` pattern (included in sensor flat rate)
- **File collection**: Collect `.evtx` files (incurs artifact costs)

**Common Logs**: `wel://Security:*`, `wel://System:*`, `wel://Application:*`

### 4. Mac Unified Logs (MUL)
Stream or collect macOS Unified Logging data.

**Collection Pattern**: Use `mul://` prefix for real-time streaming

### 5. Network Packet Captures (PCAP)
Capture network traffic for analysis (Linux only).

**Use Cases**: Network forensics, protocol analysis, data exfiltration detection

### 6. File System Metadata (MFT)
Collect Master File Table data from Windows systems.

**Use Cases**: Timeline analysis, file system forensics, deleted file recovery

---

## 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

```python
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: "List artifacts from the last 24 hours"**
```python
end_time = int(time.time())  # Current time
start_time = end_time - 86400  # 24 hours 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)

---

## Quick Start

### Most Common Collection: Suspicious File

```bash
# 1. Hash the file first (verify without downloading)
file_hash --path C:\Users\alice\Downloads\suspicious.exe

# 2. Collect the file
artifact_get C:\Users\alice\Downloads\suspicious.exe

# 3. Get file metadata
file_info --path C:\Users\alice\Downloads\suspicious.exe
```

### Quick Memory Investigation

```bash
# 1. List processes
os_processes

# 2. Get memory map for suspicious process
mem_map --pid 1234

# 3. Extract strings from memory
mem_strings --pid 1234

# 4. Search for specific indicator
mem_find_string --pid 1234 --string "malicious-domain.com"
```

### Quick Log Collection

```bash
# Windows Event Logs
log_get Security
log_get System

# Or collect the .evtx files
artifact_get C:\Windows\System32\winevt\Logs\Security.evtx
```

---

## Common Workflows

### Workflow 1: Malware File Investigation

**When to use**: Suspicious file detected on endpoint

**Steps**:
1. **Hash first** to verify without collecting:
   ```bash
   file_hash --path C:\path\to\suspicious.exe
   ```

2. **Get file details**:
   ```bash
   file_info --path C:\path\to\suspicious.exe
   ```

3. **Collect the file**:
   ```bash
   artifact_get C:\path\to\suspicious.exe
   ```

4. **Check surrounding context**:
   ```bash
   dir_list --path C:\path\to
   ```

### Workflow 2: Process Memory Analysis

**When to use**: Investigating suspicious running process

**Steps**:
1. **Identify the process**:
   ```bash
   os_processes
   ```

2. **Map the memory**:
   ```bash
   mem_map --pid <process_id>
   ```

3. **Extract strings**:
   ```bash
   mem_strings --pid <process_id>
   ```

4. **Search for IOCs**:
   ```bash
   mem_find_string --pid <process_id> --string "suspicious-indicator"
   ```

5. **Full memory dump** (if needed via Dumper extension):
   ```yaml
   extension request: {target: "memory", sid: "sensor-id", retention: 7}
   ```

### Workflow 3: Authentication Investigation

**When to use**: Investigating suspicious login activity

**Steps**:
1. **Collect Security logs**:
   ```bash
   log_get Security
   ```

2. **Check current users**:
   ```bash
   os_users
   ```

3. **Check network connections**:
   ```bash
   netstat
   ```

4. **Get current processes**:
   ```bash
   os_processes
   ```

### Workflow 4: Automated Collection on Detection

**When to use**: Set up proactive evidence collection

**Example D&R Rule**:
```yaml
detect:
  event: NEW_DOCUMENT
  op: and
  rules:
    - op: matches
      path: event/FILE_PATH
      re: .*\.(exe|dll|scr)$
      case sensitive: false
    - op: contains
      path: event/FILE_PATH
      value: \Downloads\

respond:
  - action: report
    name: suspicious-file-written
  - action: task
    command: artifact_get {{ .event.FILE_PATH }}
    investigation: auto-collection
    suppression:
      max_count: 1
      period: 1h
      is_global: false
      keys:
        - '{{ .event.FILE_PATH }}'
```

### Workflow 5: Comprehensive Incident Response

**When to use**: Active security incident requiring full investigation

**Priority Order**:
1. **Volatile data first** (disappears when system powers off):
   ```bash
   os_processes
   netstat
   mem_map --pid <suspicious_pid>
   mem_strings --pid <suspicious_pid>
   ```

2. **Critical files**:
   ```bash
   artifact_get <suspicious_executable>
   artifact_get <malicious_script>
   ```

3. **System artifacts**:
   ```bash
   log_get Security
   log_get System
   history_dump
   ```

4. **Full dumps** (via Dumper extension):
   - Memory dump
   - MFT dump

---

## Reliable Tasking Overview

### What is Reliable Tasking?

Reliable Tasking allows you to queue artifact collection commands for sensors that are currently offline. Tasks are automatically delivered when the sensor comes online.

### When to Use Reliable Tasking

- Sensors with intermittent connectivity
- Collecting from remote/mobile devices
- Ensuring collection happens on next check-in
- Large-scale deployments

### Creating a Reliable Task

**Via REST API**:
```bash
curl --location 'https://api.limacharlie.io/v1/extension/request/ext-reliable-tasking' \
--header 'Authorization: Bearer $JWT' \
--header 'Content-Type: application/x-www-form-urlencoded' \
--data 'oid=$YOUR_OID&action=task&data={"context":"incident-response","selector":"tag==offline-hosts","task":"artifact_get C:\\Windows\\System32\\malware.exe","ttl":86400}'
```

**Key Parameters**:
- `context`: Identifier for grouping related tasks
- `selector`: Target criteria (sensor ID, tag, platform)
- `task`: The command to execute
- `ttl`: Time-to-live in seconds (default: 1 week)

**Targeting Options**:
- `sid`: Specific Sensor ID
- `tag`: All sensors with a specific tag
- `plat`: All sensors of a platform (windows, linux, macos)
- `selector`: Advanced selector expression

### Tracking Responses

Use the `context` parameter to track responses via D&R rules:

```yaml
detect:
  op: contains
  event: RECEIPT
  path: routing/investigation_id
  value: incident-response

respond:
  - action: report
    name: collection-completed
  - action: output
    name: artifact-responses
```

For complete Reliable Tasking details, see [REFERENCE.md](REFERENCE.md#reliable-tasking).

---

## Storage and Access

### Where Artifacts Are Stored

Collected artifacts are stored in LimaCharlie's artifact storage with:
- Configurable retention periods (default: 30 days)
- Secure, encrypted storage
- Access controls based on organization permissions
- Unique artifact identifiers

### Accessing Collected Artifacts

**Via Web UI**:
1. Navigate to **Sensors > Artifact Collection**
2. View collected artifacts list
3. Click on artifact to view details
4. Download artifact for analysis

**Via REST API**:
```bash
# List artifacts
GET https://api.limacharlie.io/v1/orgs/{oid}/artifacts

# Download specific artifact
GET https://api.limacharlie.io/v1/orgs/{oid}/artifacts/{artifact_id}
```

### Cost Optimization

**Reduce Costs**:
- Use `wel://` for logs instead of `.evtx` files
- Set minimal necessary retention
- Implement collection suppression
- Filter events before collection
- Use file hashes to avoid duplicate collection

**Monitor Usage**:
- Track artifact ingestion volumes
- Review billing regularly
- Set usage alerts (via Usage Alerts extension)

---

## Quick Command Reference

For complete command syntax and parameters, see [REFERENCE.md](REFERENCE.md).

### File Commands
- `artifact_get <file_path>` - Collect file to artifact storage
- `file_get --path <file_path>` - Get file content in response
- `file_hash --path <file_path>` - Calculate file hash
- `file_info --path <file_path>` - Get file metadata
- `dir_list --path <directory>` - List directory contents

### Memory Commands
- `mem_read --pid <pid> --base <addr> --size <bytes>` - Read process memory
- `mem_map --pid <pid>` - Get process memory map
- `mem_strings --pid <pid>` - Extract strings from memory
- `mem_find_string --pid <pid> --string <text>` - Search memory for string

### Log Commands
- `log_get <log_name>` - Get Windows Event Log (Windows only)
- `history_dump` - Dump sensor's cached events

### Analysis Commands
- `os_processes` - List running processes
- `netstat` - Show network connections
- `os_users` - List user accounts
- `os_services` - List system services
- `os_autoruns` - List autostart programs

---

## Best Practices

1. **Collect Volatile Data First**: Memory, processes, and network connections disappear when systems power off
2. **Use Suppression**: Prevent resource exhaustion with `max_count: 1` and `period: 1h` in automated rules
3. **Hash Before Collecting**: Use `file_hash` to verify files without downloading
4. **Use Investigation IDs**: Track related artifacts with the `investigation` parameter
5. **Set Appropriate Retention**: Balance compliance needs (7-90 days) with costs
6. **Monitor Costs**: Track artifact volumes, set alerts, review rules regularly

See [TROUBLESHOOTING.md](TROUBLESHOOTING.md#cost-management) for detailed cost optimization strategies.

---

## Next Steps

### For Complete Command Reference
See [REFERENCE.md](REFERENCE.md) for:
- Complete command syntax
- All parameters and options
- Platform compatibility
- Response event types
- Dumper extension details

### For Investigation Examples
See [EXAMPLES.md](EXAMPLES.md) for 10 detailed scenarios:
- Malware incident response
- Ransomware response
- Data exfiltration detection
- Lateral movement detection
- Linux server compromise
- Memory-only malware
- Compliance evidence collection
- And more...

### For Troubleshooting
See [TROUBLESHOOTING.md](TROUBLESHOOTING.md) for:
- Collection failures
- Permission issues
- Storage problems
- Cost management
- Performance optimization

---

## Summary

Artifact collection is critical for incident response, forensics, threat hunting, and compliance.

**Key Takeaways**:
1. Enable Artifact and Reliable Tasking extensions
2. Collect volatile data first (memory, processes, network)
3. Use appropriate collection method (manual, automated, reliable)
4. Implement suppression to prevent resource exhaustion
5. Monitor costs and retention
6. Follow evidence preservation best practices
7. Test collection rules before production deployment

**Remember**:
- Artifacts incur storage costs
- Use templating in D&R rules for dynamic collection
- Leverage Reliable Tasking for offline sensors
- Preserve chain of custody
- Collect only what's needed

For more information, refer to:
- LimaCharlie Artifact Extension documentation
- Reliable Tasking Extension documentation
- Endpoint Agent Commands reference
- Detection & Response rules guide

Related Skills

artifact-metadata

16
from diegosouzapw/awesome-omni-skill

Manage artifact metadata, versioning, ownership, and history tracking. Use when relevant to the task.

gitlab-ci-artifacts-caching

16
from diegosouzapw/awesome-omni-skill

Use when configuring artifacts for inter-job data passing or caching for faster builds. Covers cache strategies and artifact management.

artifact-integrity-forge

16
from diegosouzapw/awesome-omni-skill

Create and verify integrity signatures for protocol artifacts.

artifact-aggregator

16
from diegosouzapw/awesome-omni-skill

Create tiered reports (micro/standard/comprehensive) based on task complexity. Tier 1 (200-500 words) for Level 1 tasks, Tier 2 (500-1500 words) for Level 2, Tier 3 (1500-5000 words) for Level 3 epics. Synthesizes agent outputs into concise, scannable reports without duplication. Uses density over volume, actionable over descriptive. Triggers ONLY after multi-agent completion (2+ agents) or complex investigations. NOT for single-agent trivial tasks.

topic-collector

16
from diegosouzapw/awesome-omni-skill

AI热点采集工具。从Twitter/X、Product Hunt、Reddit、Hacker News、博客等采集AI相关热点内容。当用户说"开始今日选题"、"采集热点"、"看看今天有什么新闻"、"今日AI热点"时触发。聚焦领域:Vibe Coding、Claude Skill、AI知识管理、AI模型更新、AI新产品、海外热点。

artifact

16
from diegosouzapw/awesome-omni-skill

Add non-text files to a person's artifacts folder. Use when saving images, documents, or other files related to someone. Trigger words: artifact, save image, add photo, attach file, store document.

artifact-tracking

16
from diegosouzapw/awesome-omni-skill

Token-efficient tracking for AI orchestration. CLI-first for status updates (~50 tokens), agent fallback for complex ops (~1KB). Use when: updating task status, querying blockers, creating progress files, validating phases.

artifact-advisor

16
from diegosouzapw/awesome-omni-skill

Advise on choosing between Skills, Commands, Subagents, and Hooks for Claude Code. Analyze user requirements and recommend the appropriate artifact type with justification. Use when user asks "should I use a skill or command", "what artifact type", "skill vs command", or describes a workflow needing automation.

bgo

10
from diegosouzapw/awesome-omni-skill

Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.

Coding & Development

moai-lang-r

16
from diegosouzapw/awesome-omni-skill

R 4.4+ best practices with testthat 3.2, lintr 3.2, and data analysis patterns.

moai-lang-python

16
from diegosouzapw/awesome-omni-skill

Python 3.13+ development specialist covering FastAPI, Django, async patterns, data science, testing with pytest, and modern Python features. Use when developing Python APIs, web applications, data pipelines, or writing tests.

moai-icons-vector

16
from diegosouzapw/awesome-omni-skill

Vector icon libraries ecosystem guide covering 10+ major libraries with 200K+ icons, including React Icons (35K+), Lucide (1000+), Tabler Icons (5900+), Iconify (200K+), Heroicons, Phosphor, and Radix Icons with implementation patterns, decision trees, and best practices.