fivemanage — Claude Code skill for FiveM screenshots and logs
A skill that teaches the agent to use the Fivemanage SDK: capture player screenshots, upload images and push logs to the dashboard via exports.fmsdk.
npx skills add germanfndez/fiveai-skills --skill fivemanage -a claude-codeWhat fivemanage does
The skill loads when you install or configure the Fivemanage SDK, grab a player screenshot, or send entries to the Fivemanage dashboard. It keeps a decision table in front of the agent: takeImage runs client-side, while takeServerImage(playerSource, ...) and uploadImage(buffer, ...) are server-side. For logs there is Log(dataset, level, message, metadata) with an explicit level plus the Info/Warn/Error shorthands; LogMessage is marked legacy.
Install order is where people trip. The resource folder has to be named fmsdk and sit directly in resources/ — category folders are not supported. takeImage and takeServerImage need screenshot-basic, and its ensure line must come before fmsdk in server.cfg. Get that wrong and screenshots silently fail. API keys live as ConVars in server.cfg (FIVEMANAGE_MEDIA_API_KEY, FIVEMANAGE_LOGS_API_KEY), never in config.json, and you should set only the keys for the features you actually use.
The skill ships rules for installation, images, logs and config.json automatic events. The agent returns the server.cfg lines first, then runnable Lua or JS with the call side stated explicitly. It advises putting playerSource or targetSource in metadata so the SDK attaches player identifiers on its own, and keeping one dataset per concern: economy, anticheat, admin_actions. API tokens never go to NUI — client-side uploads use presigned URLs instead.
What it helps with
- capture a player's screen on an admin command
- upload an existing image buffer to Fivemanage
- send a levelled log entry from Lua or JS to the dashboard
- split logs across datasets like economy and anticheat
- turn on automatic chat and resource events in config.json
Example prompts for the agent
- Install fmsdk and show me the server.cfg lines with the API keys
- Take a server-side screenshot of a player with takeServerImage and include playerSource
- Set up logging to the admin_actions dataset through exports.fmsdk:Log
How to install fivemanage
1Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivemanage -a claude-code2Manually: put the files in place
~/.claude/skills/fivemanage/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/fivemanage/
1Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivemanage -a codex2Manually: put the files in place
.agents/skills/fivemanage/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivemanage -a cursor2Manually: put the files in place
.cursor/skills/fivemanage/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install germanfndez/fiveai-skills fivemanage2Manually: put the files in place
.github/skills/fivemanage/SKILL.md1Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivemanage -a gemini-cli2Platform CLI
gemini skills install https://github.com/germanfndez/fiveai-skills --path skills/fivemanageManually: put the files in place
.devin/skills/fivemanage/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add germanfndez/fiveai-skills --skill fivemanage -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about fivemanage
How do I install fivemanage in Claude?
Run npx skills add germanfndez/fiveai-skills --skill fivemanage -a claude-code. The skill lands at ~/.claude/skills/fivemanage/SKILL.md.
What does the fivemanage skill do?
It tells the agent how to install and use the Fivemanage SDK for FiveM: taking screenshots, uploading images and writing logs to the dashboard through exports.fmsdk.
What is required for takeImage and takeServerImage?
The screenshot-basic resource, with its ensure line placed before fmsdk in server.cfg. The resource folder itself is named fmsdk and sits directly in resources/.
Source text
SKILL.md · MIT
---
name: fivemanage
description: "Trigger: Fivemanage, fmsdk, takeImage, takeServerImage, uploadImage, Log, Info/Warn/Error, player screenshots, logs dashboard. Install and use the Fivemanage SDK for images and centralized logs."
license: MIT
metadata:
author: germanfndez
version: "1.0.0"
---
# Fivemanage SDK
Screenshots, image uploads and centralized logs for FiveM through `exports.fmsdk`.
## Activation Contract
Load this skill when the user installs or configures the Fivemanage SDK, captures or uploads player screenshots, sends logs to the Fivemanage dashboard, or calls any `exports.fmsdk` function in Lua or JavaScript.
## Hard Rules
- The resource folder must be named `fmsdk` and sit directly in `resources/`; category folders are not supported.
- `screenshot-basic` is required for `takeImage` / `takeServerImage` and must `ensure` BEFORE `fmsdk` in `server.cfg`.
- API keys are ConVars in `server.cfg` (`FIVEMANAGE_MEDIA_API_KEY`, `FIVEMANAGE_LOGS_API_KEY`), never in `config.json`. Set only the keys for the features used.
- `takeImage` is CLIENT-side; `takeServerImage(playerSource, ...)` and `uploadImage(buffer, ...)` are SERVER-side.
- `Log(dataset, level, message, metadata)` is the primary log export; `Info/Warn/Error(dataset, message, metadata)` are fixed-level shorthands. `LogMessage` is legacy.
- Include `playerSource` / `targetSource` in metadata so the SDK attaches player identifiers automatically.
- Never expose API tokens to NUI; use presigned URLs for client-side uploads.
## Decision Gates
| Need | Call |
|---|---|
| Screenshot from the player's own client | `exports.fmsdk:takeImage({ ... })` |
| Screenshot of a player from the server | `exports.fmsdk:takeServerImage(playerSource, { ... })` |
| Upload an existing image file/buffer | `exports.fmsdk:uploadImage(buffer, { ... })` |
| Log with explicit level | `exports.fmsdk:Log(dataset, level, message, metadata)` |
| Quick log | `exports.fmsdk:Info/Warn/Error(dataset, message, metadata)` |
| Automatic player/chat/resource logs | `config.json` inside `fmsdk` |
## Execution Steps
1. Verify install order and ConVars (read rules/installation.md).
2. Pick the side and export from Decision Gates.
3. Attach metadata (`name`, `description`, `playerSource`) so entries are searchable.
4. Choose a dataset per concern (`economy`, `anticheat`, `admin_actions`).
5. Enable automatic events in `config.json` when useful (read rules/configuration.md).
## Output Contract
Return the `server.cfg` lines when installing, then runnable Lua or JS using `exports.fmsdk` with the side explicit and metadata included.
## References
- rules/installation.md — download, folder placement, server.cfg order, API keys.
- rules/images.md — takeImage, takeServerImage, uploadImage, metadata.
- rules/logs.md — Log, Info/Warn/Error, LogMessage, datasets, identifiers.
- rules/configuration.md — config.json, automatic events, presigned URLs.
- rules/reference-links.md — official docs and SDK download.
Upstream docs: https://docs.fivemanage.com/fivem-sdk/installation
© germanfndez · MIT · germanfndez/fiveai-skills