Full development environment setup from scratch — prerequisites, dependencies, .env file, optional local PostgreSQL database (for auth/collections/chat work), and dev server.
Install the "setup" agent skill from https://github.com/linuxfoundation/insights/tree/main/.claude/skills/setup into .claude/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add linuxfoundation/insights --skill setup -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "setup" agent skill from https://github.com/linuxfoundation/insights/tree/main/.claude/skills/setup into .agents/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add linuxfoundation/insights --skill setup -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "setup" agent skill from https://github.com/linuxfoundation/insights/tree/main/.claude/skills/setup into .cursor/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add linuxfoundation/insights --skill setup -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "setup" agent skill from https://github.com/linuxfoundation/insights/tree/main/.claude/skills/setup into .gemini/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
GitHub CLI
$ gh skill install linuxfoundation/insights setup
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add linuxfoundation/insights --skill setup -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "setup" agent skill from https://github.com/linuxfoundation/insights/tree/main/.claude/skills/setup into .github/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add linuxfoundation/insights --skill setup -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "setup" agent skill from https://github.com/linuxfoundation/insights/tree/main/.claude/skills/setup into .opencode/skills/setup/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "setup", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
setup
GitHub stars
280
Token cost
~1.9k tokens
SKILL.md length
703 words
Files
1
Skills in repo
9
Repo updated
First seen
Licence
MIT
At a glance
Full development environment setup from scratch — prerequisites, dependencies, .env file, optional local PostgreSQL database (for auth/collections/chat work), and dev server.
Works in 5 steps: Prerequisites → Install dependencies → Environment variables → …
First-time setup
SKILL.md covers Step 1: Prerequisites, Step 2: Install dependencies, Step 3: Environment variables and Step 4: Start the local…, plus 4 more sections
Calls docker, pnpm and node; needs NUXT_TINYBIRD_TOKEN and NUXT_AUTH0_CLIENT_SECRET
What it does
Setup is an agent skill from linuxfoundation/insights. Full development environment setup from scratch — prerequisites, dependencies, .env file, optional local PostgreSQL database (for auth/collections/chat work), and dev server. Use for first-time setup, broken environments, missing env vars, or when the app won't start.
Its SKILL.md is about 1.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Databases. It works with PostgreSQL, Nuxt and pnpm. The repository describes itself as: Insights into the world's most critical open source software. The licence is MIT.
Read from SKILL.md and the folder at commit 3df53b5. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves these tools, so the agent can use them without asking each time:
Bash
AskUserQuestion
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
docker
pnpm
node
bash
npm
From the folder's file list and the shell code blocks in SKILL.md.
Network
Links to these hosts (documentation or services it may open):
github.com
nodejs.org
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names these keys or tokens, usually read from environment variables:
NUXT_TINYBIRD_TOKEN
NUXT_AUTH0_CLIENT_SECRET
NUXT_JWT_SECRET
NUXT_INSIGHTS_DB_PASSWORD
POSTGRES_PASSWORD
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Setup loads about 1.9k tokens when it runs. Until then it costs about 69 tokens; SKILL.md has 703 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~69
When it runs· the whole SKILL.md, loaded when a task matches
~1.9k
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: notes
The automated check noted patterns worth knowing about, such as sudo or a known installer.
NoteMentions a .env fileSKILL.md:5
.env file, optional local PostgreSQL database (for auth/collections/chat work),
NoteMentions a .env fileSKILL.md:45
Create `frontend/.env` and populate it with the values below. Ask a team member for the secret values — they are shared
NoteMentions a .env fileSKILL.md:75
ell the user to let you know when their `.env` is ready, then continue to Step 4.
NoteMentions a .env fileSKILL.md:99
ate `NUXT_INSIGHTS_DB_PORT` in `frontend/.env` to match.
NoteMentions a .env fileSKILL.md:199
) and update `NUXT_INSIGHTS_DB_PORT` in `.env` |
NoteMentions a .env fileSKILL.md:202
| Check Auth0 env vars in `frontend/.env` |
NoteMentions a .env fileSKILL.md:203
INYBIRD_TOKEN` is populated in `frontend/.env` |
NoteMentions a .env fileSKILL.md:204
true` and CM DB credentials to `frontend/.env` |
NotePre-approves every shell command (allowed-tools: Bash)SKILL.md
allowed-tools: Bash, AskUserQuestion
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); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/setup/SKILL.md (or your agent's skills folder).
name
setup
description
Full development environment setup from scratch — prerequisites, dependencies, .env file, optional local PostgreSQL database (for auth/collections/chat work), and dev server. Use for first-time setup, broken environments, missing env vars, or when the app won't start.
allowed-tools
Bash, AskUserQuestion
Development Environment Setup
Walk through each step in order, verifying success before moving on.
Step 1: Prerequisites
Check that the following are installed:
bash
node --version # must be 20+
pnpm --version # must be 9+
docker info # Docker must be running
If Node is missing or wrong version: install via nvm or nodejs.org.
If pnpm is missing: npm install -g pnpm or corepack enable && corepack prepare pnpm@latest --activate.
If Docker is not running: start Docker Desktop before continuing.
Step 2: Install dependencies
Run from the repo root:
bash
pnpm install --filter frontend
Step 3: Environment variables
Create frontend/.env and populate it with the values below. Ask a team member for the secret values — they are shared via the team's secrets manager.
Required secrets (get from team):
NUXT_PUBLIC_AUTH0_CLIENT_ID
NUXT_AUTH0_CLIENT_SECRET
NUXT_JWT_SECRET
NUXT_TINYBIRD_TOKEN — data won't load without this
Database — only needed if you will run Step 4 (Postgres). Use these exact values:
Database, auth, and other runtime config vars must use the NUXT_ prefix so Nuxt's runtime config picks them up automatically. A few server-only vars (e.g. APP_ENV) are read directly via process.env and do not need the prefix — check frontend/setup/runtime-config.ts for the full list.
Collections feature — only needed if working on collections endpoints:
NUXT_CM_DB_ENABLED=true
This also requires crowd.dev (crowd-web) DB credentials — ask the team for them.
Tell the user to let you know when their .env is ready, then continue to Step 4.
Step 4: Start the local database (optional)
Ask the user: Do you need to work on any of the following features locally?
Auth / login flow
Collections pages (/collection/*, "add to collection" buttons)
Copilot / chat
Use AskUserQuestion to confirm before proceeding. If the answer is no, skip to Step 5 — the dev server runs fine without Postgres, and any route that needs the DB will return an error only when hit directly.
If the answer is yes, continue with the steps below.
4a. Check for port conflicts
bash
lsof -i :5450 | grep LISTEN
Use port 5450 (the port used throughout this guide — the Nuxt runtime default is 5432, but we use 5450 here to avoid colliding with any local Postgres instance). If it's already occupied, pick a free port, use it in the docker run -p flag below, and update NUXT_INSIGHTS_DB_PORT in frontend/.env to match.
4b. Start Postgres
If the insights-postgres container already exists, just start it:
Expected: tables including chat_responses, project_costs, vulnerabilities, etc.
Step 5: Start the dev server
Show full SKILL.md (281 more words)Show less
5a. Check for port :3000 conflicts
bash
lsof -nP -iTCP:3000 -sTCP:LISTEN
If a process is listed, do not switch ports — the Auth0 redirect URI and appUrl are hardcoded to localhost:3000 in frontend/setup/runtime-config.ts. Switching the port will break login. Kill the existing listener instead:
bash
lsof -ti tcp:3000 | xargs kill # graceful (SIGTERM)
lsof -ti tcp:3000 | xargs kill -9 # force, if the above doesn't clear it
5b. Start the server
bash
cd frontend && pnpm dev
The app will be available at http://localhost:3000.
Verification
Open http://localhost:3000 — the app should load
Auth0 login should work if the Auth0 env vars are set
Data should appear on project pages if the Tinybird token is set
If you skipped Step 4: analytics, leaderboards, reports, badges, and search work. Auth, collections, and chat will return errors — that's expected.
If you ran Step 4: check the container is running: docker ps | grep insights-postgres
Troubleshooting
Symptom
Fix
Port 3000 already in use
Run lsof -ti tcp:3000 | xargs kill — do not switch ports, Auth0 callback is hardcoded to :3000
DB errors but I skipped Step 4
Expected for auth/collections/chat routes — run Step 4 if you need those features
Port 5450 already in use
Pick a free port (e.g. -p 5455:5432) and update NUXT_INSIGHTS_DB_PORT in .env
host.docker.internal not resolving (Linux)
Use PGHOST=localhost with --host-network
Migration checksum mismatch
Never edit an applied migration — create a new one with /db-migrate new <name>
Auth errors in browser
Check Auth0 env vars in frontend/.env
No data showing
Check NUXT_TINYBIRD_TOKEN is populated in frontend/.env
503 on collections endpoints
Add NUXT_CM_DB_ENABLED=true and CM DB credentials to frontend/.env
DB env vars not picked up
Ensure all vars have the NUXT_ prefix — e.g. NUXT_INSIGHTS_DB_PORT, not INSIGHTS_DB_PORT
Container exists but wrong settings
docker rm -f insights-postgres then re-run the docker run command
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.
Query and change the LLM Gateway Postgres schema with Drizzle — reads, raw SQL, analytics and usage queries, the log table versus the hourly aggregation tables, usedmodel ids, cost sums, cached…
Full development environment setup from scratch — prerequisites, dependencies, .env file, optional local PostgreSQL database (for auth/collections/chat work), and dev server. Setup is an agent skill from linuxfoundation/insights.env file, optional local PostgreSQL database (for auth/collections/chat work), and dev server.
Run `npx skills add linuxfoundation/insights --skill setup -a claude-code`. Or copy the skill folder (.claude/skills/setup in linuxfoundation/insights) into .claude/skills/setup in your project. Claude Code loads it when a task matches its description.
How do I install Setup in Codex?
Run `npx skills add linuxfoundation/insights --skill setup -a codex`. Or copy the skill folder (.claude/skills/setup in linuxfoundation/insights) into .agents/skills/setup in your project. Codex loads it when a task matches its description.
Can I use 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 linuxfoundation/insights --skill 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/setup, .gemini/skills/setup, .github/skills/setup and .opencode/skills/setup in your project.
What does Setup need to run?
Going by SKILL.md and its folder, Setup needs the command-line tools its instructions call (docker, pnpm, node, bash and npm) and credentials named NUXT_TINYBIRD_TOKEN, NUXT_AUTH0_CLIENT_SECRET, NUXT_JWT_SECRET and NUXT_INSIGHTS_DB_PASSWORD. Our summary lists: Node.js; Docker; A credential in NUXT_AUTH0_CLIENT_SECRET; A credential in NUXT_JWT_SECRET. Its frontmatter pre-approves these tools: Bash, AskUserQuestion.
Does Setup access the network?
SKILL.md names 2 domains. As links in the text: github.com and nodejs.org. This is read from the text; nothing was executed.
Is Setup safe to install?
Our automated static check of SKILL.md found notes only (mentions a .env file; pre-approves every shell command (allowed-tools: bash)), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.
What licence does Setup use?
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 Setup use?
About 1.9k tokens (SKILL.md is roughly 7.5k 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 Setup?
Skills that share tags, products or a category with Setup: Veloxdb Scalable Performance (veloxbase/veloxdb, 646 stars), Devinggo Project Init (huagelong/devinggo, 122 stars), Drizzle Database (ChatbotXIO/ChatbotX, 878 stars) and Enterprise Testing (openclaw/openclaw-enterprise, 359 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Setup?
linuxfoundation (a GitHub organization) maintains it in linuxfoundation/insights, which has 280 GitHub stars. The repository holds 9 skills in this directory. The repository was last updated on October 1, 2026.
Source: linuxfoundation/insights on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.