Agent skill

Droid Model Setup

by nikships in nikships/droidproxy

Configure any third-party model as a custom model in Factory Droid (~/.factory/settings.json): resolve specs (context window, max output tokens, reasoning efforts), write a safe config entry, set…

MITAuto-check passedAgent Workflows

Install Droid Model Setup

skills CLI
$ npx skills add nikships/droidproxy --skill droid-model-setup -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nikships/droidproxy droid-model-setup --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nikships/droidproxy.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/droid-model-setup .claude/skills/droid-model-setup && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
droid-model-setup
GitHub stars
122
Token cost
~2k tokens
SKILL.md length
826 words
Files
2 (incl. scripts)
Skills in repo
4
Repo updated
First seen
Licence
MIT

At a glance

Configure any third-party model as a custom model in Factory Droid (~/.factory/settings.json): resolve specs (context window, max output tokens, reasoning efforts), write a safe config entry, set…

  • Works in 5 steps: Resolve specs per model (ask only what… → Determine endpoint + credentials. → Write entries with the helper script… → …
  • The user asks to set X
  • SKILL.md covers Workflow for "set X, Y, Z…, Hard rules, How Droid actually sends… and full schema of a customModel…, plus 3 more sections
  • Runs Python scripts from its folder; calls python3; reaches openrouter.ai

What it does

Droid Model Setup is an agent skill from nikships/droidproxy. Configure any third-party model as a custom model in Factory Droid (~/.factory/settings.json): resolve specs (context window, max output tokens, reasoning efforts), write a safe config entry, set session defaults, and prove the wiring with a live droid exec run and, when needed, an exact request-body capture. Fully open-ended: use whenever the user asks to "set X, Y, Z models up for a Droid", add/register a custom model, fix a model that ignores its reasoning setting, raise max tokens or context for BYOK models…

Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts (for example `scripts/droid_models.py`).

It sits in Agent Workflows, covering Context engineering. It works with OpenAI and OpenRouter. The repository describes itself as: macOS menu bar app that proxies Claude/Codex/Grok + More subscriptions for use with Factory Droid CLI. Actively maintained and updated with new model releases! The licence is MIT.

When your agent uses it

  • The user asks to set X
  • Z models up for a Droid
  • Add/register a custom model
  • Fix a model that ignores its reasoning setting

Example prompts

  • “set X, Y, Z models up for a Droid”
  • “set up <model for droid”
  • “configure droid models”
  • “/droid-model-setup”

Requirements

  • Python 3

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Resolve specs per model (ask only what cannot be looked up; be agentic otherwise).
  2. Determine endpoint + credentials.
  3. Write entries with the helper script (never hand-edit settings.json — see gotchas).
  4. Set session defaults if the user wants one of them as the daily driver
  5. Verify live, then report exactly what was configured and proven.

What it can do on your machine

Read from SKILL.md and the folder at commit cb3b8b5. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (Python), which the agent can run.

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • openrouter.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Droid Model Setup loads about 2k tokens when it runs. Until then it costs about 186 tokens; SKILL.md has 826 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~186
When it runs · the whole SKILL.md, loaded when a task matches
~2k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from nikships/droidproxy at commit cb3b8b5, republished under its MIT licence (© nikships). 826 words, ~2,039 tokens.

Download SKILL.mdSave it as .claude/skills/droid-model-setup/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
droid-model-setup
description
Configure any third-party model as a custom model in Factory Droid (~/.factory/settings.json): resolve specs (context window, max output tokens, reasoning efforts), write a safe config entry, set session defaults, and prove the wiring with a live droid exec run and, when needed, an exact request-body capture. Fully open-ended: use whenever the user asks to "set X, Y, Z models up for a Droid", add/register a custom model, fix a model that ignores its reasoning setting, raise max tokens or context for BYOK models, or verify what parameters Droid actually sends. Triggers include "set up <model> for droid", "configure droid models", "add custom model", "which models does droid support", and "verify my droid model config".

Droid model setup

Turns any OpenAI-compatible (and most Anthropic-compatible) endpoint into a first-class Droid model. Covers spec lookup, safe writes to ~/.factory/settings.json, session-default effort wiring, and empirical verification. Knowledge below was verified Aug 2026 against the real binary by capturing Droid's outgoing request bodies.

Workflow for "set X, Y, Z models up for a Droid"

  1. Resolve specs per model (ask only what cannot be looked up; be agentic otherwise).
    • OpenRouter-hosted model: fetch https://openrouter.ai/<vendor>/<slug> — gives context window, max completion tokens, supported reasoning efforts, pricing.
    • Other providers: check their docs/API reference for context length and output cap.
    • Note whether thinking/reasoning can be toggled and via which parameter.
  2. Determine endpoint + credentials.
    • Same provider already registered in settings? Reuse its key with the script's --reuse-key-from <existing-model-id> (reads the real stored bytes; the asterisks you see in file reads are display-only redaction, and Python sees through them).
    • New provider: ask the user for the base URL and API key if genuinely unknown. Defaults: OpenRouter https://openrouter.ai/api/v1, LM Studio http://127.0.0.1:1234/v1, llama.cpp/vLLM/Ollama-OpenAI http://127.0.0.1:<port>/v1.
    • Provider field: generic-chat-completion-api covers every OpenAI-compatible endpoint tested (OpenRouter, W&B, LM Studio, MTPLX). openai also works for OpenAI-compat APIs.
  3. Write entries with the helper script (never hand-edit settings.json — see gotchas). Model id in settings becomes the CLI-facing name: -m custom:<id>.
  4. Set session defaults if the user wants one of them as the daily driver (set-defaults subcommand sets model + matching reasoningEffort together).
  5. Verify live, then report exactly what was configured and proven.

Hard rules

Never text-edit ~/.factory/settings.json. Existing apiKey values render as runs of asterisks inside the agent's file viewer; a string-replacement edit that touches those lines writes literal asterisks to disk and destroys real keys. Use scripts/droid_models.py, which mutates parsed JSON (untouched values stay byte-identical), backs the file up first, and afterward diffs every pre-existing key — restoring automatically and failing loudly if anything changed. If you must edit manually anyway (new top-level keys etc.), anchor edits far away from apiKey lines, then diff {id: len(apiKey)} old-vs-new via Python before declaring success.

Config is not verification. A written entry proves nothing. Always finish with:

bash
droid exec -m custom:<model-id> 'Reply with exactly: config-ok'

A successful run also re-proves the API key survived whatever edit preceded it.

How Droid actually sends requests (wire facts)

Captured exact body for a generic-chat-completion-api custom model:

json
{"model":"<slug>","stream":true,"max_tokens":<N>,"temperature":1,"reasoning_effort":"<effort>"}
  • Streaming is always on (stream:true is hardcoded, plus stream_options.include_usage); there is no settings knob and none needed.
  • No separate thinking object on this path: reasoning_effort alone carries the intent; OpenRouter maps it to reasoning.effort. Anthropic-style paths instead get reasoning_effort verbatim plus budget_tokens (low 4096, medium 12288, high/xhigh 24576, max = uncapped/0).
  • maxOutputTokens maps 1:1 to max_tokens. Omit it and Droid falls back to small built-in ceilings — always set it to the model's real max completion tokens.
  • Effort ladder: none, minimal, low, medium, high, xhigh, max, dynamic, off.
  • Resolution order beats model entry: exec -r/--reasoning-effort flag > sessionDefaultSettings.reasoningEffort > customModels[].reasoningEffort. Classic bug: model entry says max, session default says none → sessions run with thinking off. When configuring for real use, set BOTH (the script's set-defaults does this atomically).
  • extraArgs is the escape hatch: arbitrary JSON merged last into every request body (wins over everything). Example: "extraArgs": {"top_p": 0.9}. No --stream style toggles — only body params.
Show full SKILL.md (304 more words)Show less

full schema of a customModel entry

All fields observed in the binary's zod schema (optional unless noted): model* (upstream slug), id, index (unique int — script auto-picks), baseUrl, apiKey | apiKeyHelper(+apiKeyHelperTtlMs), authMode ("bearer" for Anthropic SDK token path), provider*, displayName, maxContextLimit, maxOutputTokens, enableThinking, thinkingMaxTokens, reasoningEffort, noImageSupport, extraHeaders, extraArgs, bedrock, baseModelId.

Verification beyond config-ok

Token counts between efforts are NOT reliable proof of transmission (tiny prompts barely trigger thinking at any effort). To prove exact request bodies, do a wire capture:

  1. Run a tiny dump server that records POST bodies to JSONL and returns a canned chat-completion response (a ~30-line Python http.server is enough; return one fixed JSON body and log everything).
  2. Temporarily register a throwaway entry pointing at it (python3 scripts/droid_models.py add ... --base-url http://127.0.0.1:8899/v1 --api-key test-key).
  3. droid exec -m custom:dump-test -r max hi — exec fails on the fake response AFTER capture; ignore the failure, read /tmp/dump_requests.jsonl.
  4. Remove the temp entry (remove custom:dump-test) and kill the server.

Post-restart check: Droid has been observed keeping settings intact across restarts, but if a restart behaves oddly, simply Read settings.json again — if the entries are gone, they are gone; do not try to reconstruct state from caches or hack around it. Just re-run this skill's add commands (specs are cheap to re-fetch, keys come from wherever they're stored).

Helper script

bash
# from your droidproxy checkout:
S=skills/droid-model-setup/scripts/droid_models.py

python3 $S list                                   # registered custom models
python3 $S add z-ai/glm-5.3-flash \
    --id GLM-5.3-Flash-0 --display-name "GLM 5.3 Flash" \
    --base-url https://openrouter.ai/api/v1 \
    --reuse-key-from custom:some-openrouter-model \
    --effort max --max-context 1048576 --max-output 131072
python3 $S add <slug> --api-key sk-or-v1-...      # explicit key instead
python3 $S add <slug> --extra-args '{"top_p":0.9}'
python3 $S set-defaults custom:GLM-5.3-Flash-0 --effort max   # model+effort together
python3 $S remove custom:<id>

Every mutating subcommand: timestamped backup next to the file, atomic-enough single write, post-write key-integrity assertion with automatic restore on mismatch. Test safely against a copy with --settings /tmp/settings-copy.json --no-exec-hint.

Reference implementation (GLM 5.3 Flash, Aug 2026)

Worked end-to-end: specs from OpenRouter page (1M context, 131072 max completion, $0.075/$0.25 per M), entry added via safe mutation, both the model entry AND sessionDefaultSettings set to effort max, then verified three ways: config-ok exec run, key-integrity post-check, and wire capture showing reasoning_effort:"max" + max_tokens:131072 + stream:true in the actual outgoing body.

© nikships, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in skills/droid-model-setup of nikships/droidproxy.

  • SKILL.md
  • scripts/droid_models.py

Open the folder on GitHubat commit cb3b8b5

Compare with similar skills

Droid Model Setup next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Droid Model Setup compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Droid Model Setup this skillnikships/droidproxy122—~2kAutomated safety check: PassMIT
Claudish UsageMadAppGang/claudish1k—~9kAutomated safety check: PassNone
LLM Councilrohitg00/pro-workflow2.9k—~1.1kAutomated safety check: PassNone
Watchmen Setupfirstbatchxyz/watchmen296—~1.2kAutomated safety check: NotesMIT
Tlon Product Guidetloncorp/tlon-apps107—~11kAutomated safety check: PassMIT
Model Registry MaintainerMicrock/ordinary-claude-skills403—~3.6kAutomated safety check: PassCustom licence

Similar skills

  • Claudish Usage

    MadAppGang/claudish

    CRITICAL - Guide for using Claudish CLI ONLY through sub-agents to run Claude Code with any AI model (OpenRouter, Gemini, OpenAI, local models).

    1k GitHub stars~9k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • LLM Council

    rohitg00/pro-workflow

    Provider-agnostic multi-LLM deliberation. An agent skill from rohitg00/pro-workflow.

    2.9k GitHub stars~1.1k tokensUpdated 9 days ago
    Agent WorkflowsAuto-check passed
  • Watchmen Setup

    firstbatchxyz/watchmen

    Sets up watchmen on the current machine: installs the CLI, hands off the init wizard, wires the plugin and statusline into Claude Code and Codex, and verifies with doctor.

    296 GitHub stars~1.2k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check: notes
  • Tlon Product Guide

    tloncorp/tlon-apps

    Answer questions about Tlon, Urbit, Tlon Messenger, Tlonbot, and OpenClaw — what they are, how they work, and how to use them.

    107 GitHub stars~11k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Model Registry Maintainer

    Microck/ordinary-claude-skills

    Guide for maintaining the MassGen model and backend registry.

    403 GitHub stars~3.6k tokensUpdated 1 mo ago
    Agent WorkflowsAuto-check passed
  • Agents Best Practices

    DenisSergeevitch/agents-best-practices

    A skill your agent uses when designing, generating an MVP blueprint for, auditing, troubleshooting, refactoring, or explaining an agentic harness for any domain.

    2.4k GitHub stars~7.4k tokensUpdated 3 days ago
    AI & LLM EngineeringAuto-check passed

More from nikships/droidproxy

  • Gpt Image

    nikships/droidproxy

    Generate or edit images via GPT Image 2.5 Flare or Sunburst through DroidProxy Codex OAuth (no OPENAIAPIKEY).

    122 GitHub stars~2.5k tokensUpdated yesterday
    Auto-check passed
  • Grok Imagine

    nikships/droidproxy

    Generate or edit images via Grok Imagine Image 2.0 through DroidProxy (no XAIAPIKEY).

    122 GitHub stars~2.2k tokensUpdated yesterday
    Auto-check passed
  • Release

    nikships/droidproxy

    Build, sign, notarize, and publish a new DroidProxy release.

    122 GitHub stars~1.1k tokensUpdated yesterday
    Auto-check passed

Categories

Questions about Droid Model Setup

What does Droid Model Setup do?

Configure any third-party model as a custom model in Factory Droid (~/.factory/settings.json): resolve specs (context window, max output tokens, reasoning efforts), write a safe config entry, set…. Droid Model Setup is an agent skill from nikships/droidproxy.json): resolve specs (context window, max output tokens, reasoning efforts), write a safe config entry, set session defaults, and prove the wiring with a live droid exec run and, when needed, an exact request-body capture.

When should I use Droid Model Setup?

Droid Model Setup fits situations like: the user asks to set X; Z models up for a Droid; add/register a custom model; fix a model that ignores its reasoning setting.

How do I install Droid Model Setup in Claude Code?

Run `npx skills add nikships/droidproxy --skill droid-model-setup -a claude-code`. Or copy the skill folder (skills/droid-model-setup in nikships/droidproxy) into .claude/skills/droid-model-setup in your project. Claude Code loads it when a task matches its description.

How do I install Droid Model Setup in Codex?

Run `npx skills add nikships/droidproxy --skill droid-model-setup -a codex`. Or copy the skill folder (skills/droid-model-setup in nikships/droidproxy) into .agents/skills/droid-model-setup in your project. Codex loads it when a task matches its description.

Can I use Droid Model Setup in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nikships/droidproxy --skill droid-model-setup -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/droid-model-setup, .gemini/skills/droid-model-setup, .github/skills/droid-model-setup and .opencode/skills/droid-model-setup in your project.

What does Droid Model Setup need to run?

Going by SKILL.md and its folder, Droid Model Setup needs Python for the scripts in its folder and the command-line tools its instructions call (python3). Our summary lists: Python 3.

Does Droid Model Setup access the network?

SKILL.md names 1 domain. In commands or code: openrouter.ai; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Droid Model Setup safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Droid Model Setup use?

Droid Model Setup is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Droid Model Setup use?

About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Droid Model Setup?

Skills that share tags, products or a category with Droid Model Setup: Claudish Usage (MadAppGang/claudish, 1k stars), LLM Council (rohitg00/pro-workflow, 2.9k stars), Watchmen Setup (firstbatchxyz/watchmen, 296 stars) and Tlon Product Guide (tloncorp/tlon-apps, 107 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Droid Model Setup?

nikships (a GitHub user) maintains it in nikships/droidproxy, which has 122 GitHub stars. The repository holds 4 skills in this directory. The repository was last updated on October 7, 2026.

Source: nikships/droidproxy on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.