# Setup

> This skill should be used when the user asks to "set up gemskills", "configure gemskills", "choose default image/video provider", "use OpenAI for images", "use xAI/Grok for video", "switch image model", "which providers are available", "gemskills onboarding", or wants to set or inspect which AI provider (Gemini, OpenAI gpt-image-2.5-flare / Sunburst, xAI Grok Imagine) is used by default for image, video, and edit generation. Detects available API keys and persists provider defaults.

- Skill: `b-open-io/setup` (Agent Skill)
- Install (CLI): `npx skillmds@latest add b-open-io/setup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/b-open-io/setup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: b-open-io (https://skillmd.com/u/b-open-io)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/b-open-io/setup

---


# gemskills setup

gemskills supports three providers, chosen per task with `--provider` or
auto-picked by available API keys. This skill detects keys and sets/inspects the
default provider for **image**, **video**, and **edit**.

| Task | Providers (key) | Notes |
|------|-----------------|-------|
| image | gemini (`GEMINI_API_KEY`), openai (`OPENAI_API_KEY`), xai (`XAI_API_KEY`) | openai `gpt-image-2.5-flare` (Flare default; `--model sunburst` for Sunburst) best text/realism/transparency; gemini = style tiles + dedicated negative; xai fast |
| video | xai (`XAI_API_KEY`), gemini (`GEMINI_API_KEY`) | xai `grok-imagine-video-1.5` newest i2v; gemini Veo 3.1 audio/4K/refs |
| edit | gemini (`GEMINI_API_KEY`), openai (`OPENAI_API_KEY`) | gemini conversational + style tiles + dedicated negative; openai Image 2.5 masked inpaint/compose + transparent PNG |

## Config CLI

All operations go through the config CLI (resolution precedence:
`--provider` flag → `GEMSKILLS_<TASK>_PROVIDER` env → project `.gemskills.json`
→ global `~/.config/gemskills/config.json` → capability-aware auto-pick):

```bash
# What keys are present?
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/providers/config.ts detect

# Show config paths + merged settings + keys
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/providers/config.ts show

# What would a task resolve to right now?
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/providers/config.ts get image

# Set a default (global, or add --project for repo-only)
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/providers/config.ts set image openai
bun run --cwd ${CLAUDE_PLUGIN_ROOT} ${CLAUDE_PLUGIN_ROOT}/providers/config.ts set video xai --project
```

## Interactive flow

For a guided, question-based walkthrough, run the `/gemskills:setup` slash
command. Use `AskUserQuestion` to let the user pick a default for each task where
more than one provider has a key (offer only key-present providers plus an
"Auto-pick" option), then persist with `config set`.

## Agentic / non-interactive use

Agents can call the CLI directly. Typical repair: run `detect`; if a required
key is missing, tell the user the exact env var and where to get it
(aistudio.google.com / platform.openai.com / console.x.ai) — never substitute a
different key name. To pin a provider without prompting, `config set <task> <provider>`.

## Notes

- Auto-pick is **capability-aware**: requests using style tiles or a dedicated
  negative prompt route to Gemini regardless of the configured default.
  Transparency is supported on OpenAI Image 2.5 (Flare/Sunburst) and Gemini.
- Per-call `--provider <name>` always wins over saved config.
- Keys are read from one canonical env var each; gemskills never falls back to
  alternate names — if the canonical var is unset, the provider fails loudly.

