Skip to content
Automation
Skill

/local-ai-setup

The one command that takes someone from nothing to a working local AI setup: scans their machine, asks what they want it for, recommends a model and an app, asks Open WebUI or Odysseus when the pick is browser-based, then installs it with their approval. Use when the user says

From plugin
benai-skills
84152 skills17 agents1 hook4 MCP

Claude Code

$ npx -y skills add naveedharri/benai-skills --skill local-ai-setup --agent claude-code

SKILL.md

local-ai-setup.SKILL.md
name: local-ai-setup
description: "The one command that takes someone from nothing to a working local AI setup: scans their machine, asks what they want it for, recommends a model and an app, asks Open WebUI or Odysseus when the pick is browser-based, then installs it with their approval. Use when the user says \"set up local AI\", \"help me run AI on my own computer\", \"I want to run AI locally\", \"get me started with local LLMs\", \"run AI offline\", \"private AI on my machine\", \"local AI setup\", or asks how to start with local AI without naming a specific tool. Then offers to point Claude Code itself at the installed model, so also use it for \"run Claude Code on a local model\", \"point Claude Code at Ollama\" and \"use Claude Code offline\". Non-technical entry point. Never installs anything before showing download sizes and getting a yes. Requires Claude Code with shell access on the user's own machine; refuses to run in a sandbox."
disable-model-invocation: true

Local AI Setup

The front door. Takes someone with no local AI setup to a working one, in one pass, without making them choose between tools they cannot evaluate yet.

Do not make the user pick a sub-skill. Run the flow.

Before you start

Run the check in `references/environment-check.md` first. These skills need a shell on the user's own machine. If the environment is a sandbox or container, stop and tell the user to run this in Claude Code on the computer they want to set up. Do not report detected specs from a sandbox: wrong specs are worse than none.

Steps

Track progress:

Task Progress:
- [ ] 1. Scan
- [ ] 2. Ask what it is for
- [ ] 3. Recommend, with sizes
- [ ] 3b. Offer the browser choice, if one applies
- [ ] 4. Confirm
- [ ] 5. Install
- [ ] 6. Prove it and hand over
- [ ] 6b. Offer Claude Code on the local model, if it applies
- [ ] 7. Render the handover report

1. Scan

Invoke `scan-my-machine`. Report what the machine can run in plain language. Nothing is installed at this step, so say that.

2. Ask what it is for

Invoke `pick-my-harness` to ask its four questions. If the user already said what they want in their opening message, pass that through rather than re-asking.

3. Recommend, with sizes

Combine both results into one recommendation: one model, one app, the total download in gigabytes, and roughly how long it will take. One option, not a menu. Say in one line what this setup will not do, so the limit is known before they commit.

3b. Offer the browser choice, if one applies

Only when step 3 landed on a browser-based harness, meaning Open WebUI or Odysseus. Skip this entirely for LM Studio, Goose, AnythingLLM and OpenWork: those are not interchangeable with anything and a question there is noise.

The two are genuinely close. Both run in a browser, both have a real login, both sit on Ollama, and `allow-team` tunnels either one. So ask rather than decide, using an AskUserQuestion with two options:

  • **Open WebUI (Recommended)** — the default. More mature, richer group permissions, the largest community.
  • **Odysseus** — more in the box: Deep Research, blind model Compare, a Documents editor and an email inbox. AGPL-3.0.

Default to Open WebUI. If the user does not care or does not answer, take Open WebUI and say so rather than asking twice.

Name the one real trade-off in a line each: Open WebUI's branding clause applies above 50 users, and Odysseus is AGPL, so modifying it and serving it over a network obliges you to publish your changes. Do not turn this into a licence lecture.

4. Confirm

Stop. Wait for an explicit yes. Nothing has been installed or downloaded up to this point, and the user should be told that plainly.

If they say no, offer the smaller option (a lighter model, or LM Studio alone) and re-confirm.

5. Install

Check first, install second. If the chosen app is already present and serving, do not reinstall it; say it is already there and move to step 6. `references/install-odysseus.md` section 1 and `install-openwebui`'s preflight both do this check.

Route by the chosen app:

| App | Do this | |-----|---------| | Open WebUI | Invoke `install-openwebui` | | Odysseus | Read `references/install-odysseus.md` | | LM Studio | Read `references/install-other.md` | | Goose | Read `references/install-other.md` | | AnythingLLM | Read `references/install-other.md` | | OpenWork | Read `references/install-other.md` |

6. Prove it and hand over

Send one real prompt through the finished setup and show the reply. An HTTP 200 is not proof.

Then give the user: the URL or app to open, how to restart it later, and the one thing most likely to confuse them next, from `references/handover.md`. Stop there. Do not keep configuring.

6b. Offer Claude Code on the local model, if it applies

The chat window is the deliverable and it is finished. This is a separate offer on top of it, so make it an offer and not a step the user is walked through by default.

Two conditions, both required. The backend is **Ollama**, on its own or under Open WebUI or Odysseus, because Ollama serves the Anthropic Messages API and the others do not. And the installed model is **roughly 7B or larger**, because Claude Code is a tool calling agent and a smaller model returns confident fabrications instead of tool calls. If either fails, skip this silently rather than explaining what the user cannot have.

When both hold, ask in one line whether they also want Claude Code running on this model, saying plainly that it is slower and less capable than the hosted one and the win is privacy, offline work and no per token cost. On a yes, read `references/claude-code-wiring.md` and follow it.

**What the user gets is a three line block they paste in order, ending in `ollama launch claude --model <their model>`, not a wall of environment variables.** Ollama configures and starts Claude Code itself, and it does not touch the user's `~/.claude/settings.json`, which means there is almos

Read more
@naveedharri
Ships withbenai-skills

Expert automation skills for Claude Code, organized by department.

84152 skills17 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
84
Star history of naveedharri/benai-skills on GitHub, a chart by star-history.com

Other skills on benai-skills.

ads-audit

ads-audit

Full multi-platform paid advertising audit with parallel subagent delegation. Analyzes Google Ads, Meta Ads, LinkedIn Ads, TikTok…

ads-budget

ads-budget

Budget allocation and bidding strategy review across all ad platforms. Evaluates spend distribution, bidding strategy…

ads-competitor

ads-competitor

Competitor ad intelligence analysis across Google, Meta, LinkedIn, TikTok, and Microsoft. Analyzes competitor ad copy, creative…

ads-creative

ads-creative

Cross-platform creative quality audit covering ad copy, video, image, and format diversity across all platforms. Detects creative…

ads-google

ads-google

Google Ads deep analysis covering Search, Performance Max, Display, YouTube, and Demand Gen campaigns. Evaluates 74 checks across…

ads-landing

ads-landing

Landing page quality assessment for paid advertising campaigns. Evaluates message match, page speed, mobile experience, trust…

More skills from other plugins.

agent-builder

agent-builder

Load immediately after an Agent intent, before the first agent_builder_* call. Governs how you create, configure, test, and…

n8n2w209k
@n8n-io@n8n-ioInstall Skill
browser-use

browser-use

Direct browser control via CDP for web interaction: automation, scraping, testing, screenshots, and site/app work. Also covers…

@browser-use@browser-useInstall Skill
add-anydoc

add-anydoc

Add local office-document-to-Markdown conversion to NanoClaw agent containers with the pinned Firecrawl AnyDoc CLI. Use when…

@nanocoai@nanocoaiInstall Skill

Questions about local-ai-setup.

Which coding agents can use local-ai-setup?
local-ai-setup installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.