Onboard a user to Wren Engine end-to-end. Walks through environment checks, project scaffolding, connection configuration via .env, and first query. Use when: user wants to install Wren Engine, set up a new data source connection, or bootstrap a new project from scratch. Triggers: '/wren-onboarding', 'install wren', 'set up wren engine', 'wren onboarding', 'connect new database to wren'.
74
92%
Does it follow best practices?
Run evals on this skill
Adds up to 20 points to the overall score
View guide
Passed
No findings from the security scan
This skill walks the agent through onboarding — environment checks, project scaffolding, profile creation, MDL generation, and first query. Procedural details, per-datasource setup notes, and the troubleshooting playbook live in the docs, not here. The skill's job is to enforce the agent-side rules (one step per turn, never ask for credentials in chat) and to dispatch the agent to the right doc / sibling skill at each step.
Reference docs (the skill points to these — never duplicate their content):
docs/core/get_started/installation.md — CLI install + skill installdocs/core/guides/connect.md — full connection procedure, per-datasource setup notes, complete troubleshooting playbookdocs/core/get_started/quickstart.md — bundled jaffle_shop demoOne step per round-trip. Each numbered step below is its own turn: explain briefly, ask only what the step needs, run the command(s), confirm, move on.
.env. The user fills the file in their editor; the agent never sees the values.wren skills get generate-mdl.wren docs connection-info <ds> to see the real fields — it's introspected from the live Pydantic schema, so it's always correct.connect.md#troubleshooting and surface the relevant section to the user — don't carry a copy of the playbook here.Read-only checks. Report findings, do not ask about project / credentials / datasource yet.
python3 --version — requires Python 3.11+. If older, ask the user to upgrade and stop.python3 -c "import sys; print(sys.prefix != sys.base_prefix)". If False, offer to create one (python3 -m venv .venv && source .venv/bin/activate). PEP 668 systems will need this.wren --version — if already installed, confirm before reinstalling.pwd — record it. Don't ask where the project should live yet.Report findings as a 4-bullet list, then continue.
"Try the bundled
jaffle_shopdemo first (~30s, no DB needed), or connect your own database?"
quickstart.md and stop this skill.These two are the only thing Step 2 needs; ask both together so the user has a clean handoff:
"Two things before I scaffold:
- Project name — I'll create
~/<name>/andcdinto it.- Database type — run
wren docs connection-info(no argument) to see the full list, or pick a common one:postgres(use for Aurora PostgreSQL),mysql(use for Aurora MySQL),bigquery,snowflake,clickhouse,trino,duckdb, …"
Wait for both. Don't ask for credentials.
Side effects: creates ~/<project>/, installs wrenai[<ds>,main], generates an empty .env template. The project files (wren_project.yml etc.) come later in Step 3.5 — at this point we only have a directory with credentials waiting to be filled.
Run as a batch — report each command briefly, then end with one "please fill .env" ask:
mkdir -p ~/<project> && cd ~/<project>.
pip install "wrenai[<ds>,main]". For datasource-specific install gotchas (macOS mysql, etc.), see connect.md#per-datasource-setup-notes.
Generate the .env template by introspecting the connector:
wren docs connection-info <ds> --format mdUse the field list to write .env with <DS>_<FIELD>= keys (UPPER_SNAKE), values empty. Example for postgres:
POSTGRES_HOST=
POSTGRES_PORT=5432
POSTGRES_DATABASE=
POSTGRES_USER=
POSTGRES_PASSWORD=Special encodings (BigQuery base64, Snowflake account format, Athena AWS creds, etc.) are documented in connect.md#per-datasource-setup-notes. Surface the relevant section to the user verbatim — don't paraphrase.
Add .env to .gitignore if the project is a git repo. Suggest chmod 600 .env.
Tell the user: .env is at <path>, please fill every value and reply "done".
Only after the user replies "done".
Write /tmp/conn.yml with every field as a ${VAR} placeholder matching the .env keys you generated in Step 2:
datasource: <ds>
host: ${<DS>_HOST}
port: ${<DS>_PORT}
# … one line per field from `wren docs connection-info <ds>`Then:
wren profile add <project> --from-file /tmp/conn.ymlValidation runs automatically. The CLI overwrites profiles silently — there is no --force flag.
connect.md#troubleshooting for the exact symptom (missing secret, driver auth failure, ValidationError, unreachable host, …) and tell the user what to fix.wren context init --emptyRefuses to overwrite an existing wren_project.yml. Creates the project directory layout (models/, views/, relationships.yml, knowledge/ (rules + sql), AGENTS.md).
wren context set-profile <project>Writes both profile: <project> and data_source: <ds> into wren_project.yml (data_source is taken from the profile we just validated, so it's guaranteed correct). Future CLI commands and the SDK resolve the connection deterministically — independent of which profile is globally active.
This step also future-proofs the project for multi-project setups: once the binding is recorded, switching wren profile switch elsewhere never breaks this project's queries.
⚠️ The agent must build MDL before any data query. Queries against tables not in MDL will fail.
Run wren skills get generate-mdl and follow it. It walks the agent through table introspection, type normalization, and YAML generation. When it finishes, return here and run:
wren context validate
wren context buildReport the model count and any validate warnings.
Memory recommendation: count models with wren context show | grep -c '^model:'. If >= 200, suggest pip install "wrenai[memory]" + wren memory index (~800 MB). If < 200, skip.
Suggest 2–3 NL questions based on the discovered tables (e.g. for an orders schema: "How many orders last month?", "Top 5 customers by total"). Then end this skill: for day-to-day querying the agent should run wren skills get usage.
| Trigger | Skill |
|---|---|
| User mentions a SaaS source (HubSpot, Stripe, Salesforce, GitHub, Slack, …) | wren skills get dlt-connector |
| User has a connected DB but no MDL yet | wren skills get generate-mdl |
| User has MDL ready, wants to query | wren skills get usage |
| Anything else from-scratch | wren skills get onboarding (this skill) |
Don't carry an error playbook here — surface connect.md#troubleshooting sections to the user. The doc covers:
wren: command not foundpip install … externally-managed-environmentMissingSecretError)ValidationError / unknown datasourcewren context validate warning categoriesIf you hit something not in the playbook, tell the user:
"I hit an error I don't know how to fix:
<error>. See https://docs.getwren.ai/oss/introduction or open an issue at https://github.com/Canner/WrenAI/issues."
7830cc7
If you maintain this skill, you can claim it as your own. Once claimed, you can manage eval scenarios, bundle related skills, attach documentation or rules, and ensure cross-agent compatibility.