Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/nikships/droidproxy/droid-model-setupnpx skills add nikships/droidproxy --skill droid-model-setupgit clone --depth 1 https://github.com/nikships/droidproxyWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00166 | $0.02055 |
| Opus 5 | $0.00083 | $0.01027 |
| Sonnet 5 | $0.00033 | $0.00411 |
| Haiku 4.5 | $0.00017 | $0.00205 |
Grade A, and why
droid-model-setup scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 3d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 143 lines — stays where its author put it; the contents beside it link to each section on GitHub.
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"
- 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.
- OpenRouter-hosted model: fetch
- 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 Studiohttp://127.0.0.1:1234/v1, llama.cpp/vLLM/Ollama-OpenAIhttp://127.0.0.1:<port>/v1. - Provider field:
generic-chat-completion-apicovers every OpenAI-compatible endpoint tested (OpenRouter, W&B, LM Studio, MTPLX).openaialso works for OpenAI-compat APIs.
- Same provider already registered in settings? Reuse its key with the script's
- Write entries with the helper script (never hand-edit settings.json — see gotchas).
Model
idin settings becomes the CLI-facing name:-m custom:<id>. - Set session defaults if the user wants one of them as the daily driver
(
set-defaultssubcommand sets model + matching reasoningEffort together). - 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.
What ships with it
1 file beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 3d ago First seen · 143 lines · 166 tokens per session scan A 14e22be7f35f
droid-model-setup is a skill published in the GitHub repository nikships/droidproxy (120 stars, last pushed 3d ago), licensed MIT. It adds 166 tokens to every session and 2,055 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
harbofly-cleanup
Reclaim disk space on a macOS developer machine by finding and safely cleaning build caches and artifacts (Xcode DerivedData, nodemodules, Docker, and package-manager/editor/AI caches) with the Harbofly CLI. Everything goes to the Trash and is recoverable. Use when the user wants to free up disk space, clean dev…
claude-api
Build, debug, and optimize Claude API / Anthropic SDK apps. Apps built with this skill should include prompt caching. Also handles migrating existing Claude API code between Claude model versions (4.5 → 4.6, 4.6 → 4.7, retired-model replacements). TRIGGER when: code imports anthropic/@anthropic-ai/sdk; user asks for…
skill-creator
Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.
algorithmic-art
Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright…
doc-coauthoring
Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers.…
canvas-design
Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.