Skip to content

refactor(readme): adjust readme#2292

Merged
chilijung merged 1 commit into
mainfrom
refactor/adjust-readme
May 15, 2026
Merged

refactor(readme): adjust readme#2292
chilijung merged 1 commit into
mainfrom
refactor/adjust-readme

Conversation

@PaulChen79
Copy link
Copy Markdown
Contributor

@PaulChen79 PaulChen79 commented May 15, 2026

Summary by CodeRabbit

  • Documentation
    • Major README rewrite with a new hero/header, updated branding, and clearer narrative (“The problem”)
    • New Quickstart focused on installing skills and guided onboarding, plus recommended command flows
    • Clarified product value and “Two beats” workflow; split capabilities into “What works today” and “What’s next”
    • Removed old data-source list; added structured project layout and contributor guidance
    • Simplified licensing to Apache 2.0 and refreshed community/documentation links

Review Change Stack

@PaulChen79 PaulChen79 self-assigned this May 15, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented May 15, 2026

Walkthrough

README.md is substantially rewritten to present updated branding, a problem statement, a Quickstart centered on skills and wren commands, a revised feature overview and capability lists, and refreshed documentation/community/contributing/project-structure and license/footer sections.

Changes

README Rewrite and Reorganization

Layer / File(s) Summary
Header, badges, and announcement
README.md
Header markup, logo, and badge set updated; engine-merger announcement retained with updated surrounding context.
Problem statement and Quickstart
README.md
New "The problem" section added; Quickstart replaced with install/run flow for wren-onboarding, optional wren-enrich-context, and wren ask examples (including jaffle_shop).
Feature overview and capabilities
README.md
Primary descriptive content rewritten into "What WrenAI is," "Why agent builders pick WrenAI," "Two beats" workflow, and split capability lists for "What works today" and "What's next."
Vision, documentation, and community links
README.md
Vision/roadmap link updated to vision_paper_en.md; documentation and community link ordering refreshed.
Logo wall, contributing, project structure, license, footer
README.md
"Used by" replaced with placeholder logo wall; contributing guidance and labels updated; project structure block refreshed to reflect core/, sdk/, skills/, docs/, examples/; contributors markup and license simplified to Apache 2.0; footer/call-to-action preserved.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Possibly related PRs

  • Canner/WrenAI#1604: Also modifies README.md, reorganizing and rewriting documentation and messaging.
  • Canner/WrenAI#1665: Substantial README reorganization and wording changes similar to this PR.
  • Canner/WrenAI#2234: Reframes README narrative and updates repository structure wording.

Suggested reviewers

  • chilijung
  • cyyeh

Poem

🐰 A README reborn with badges bright and new,
Quickstart guides and problem lines in view,
Two beats hum, capabilities laid plain,
Docs and structure tidy, license clear like rain,
Hooray for WrenAI — hop onward, code and crew!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'refactor(readme): adjust readme' is vague and doesn't clearly describe the substantial changes made to the README, such as the hero layout redesign, new problem narrative, or restructured documentation flow. Use a more specific title that captures the main changes, such as 'refactor(readme): redesign README with new hero layout and restructured documentation' or similar.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch refactor/adjust-readme

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions Bot added the documentation Improvements or additions to documentation label May 15, 2026
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Around line 19-20: Replace the placeholder Discord server ID "0000000000" in
the badge URL (the Markdown line containing
https://img.shields.io/discord/0000000000?logo=discord&label=Discord) with the
real Discord server ID so the badge renders correctly; keep the surrounding
badge Markdown and the invite link (https://discord.gg/wrenai) intact and verify
the badge image loads after updating the ID.
- Around line 163-166: Update the "Concepts" markdown link so the link target
uses the correct path: replace the old URL
"https://docs.getwren.ai/oss/concepts/what_is_context" used for the "Concepts"
list item with the new URL
"https://docs.getwren.ai/oss/engine/concept/what_is_context" (leave the link
text "Concepts" and the other links unchanged).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: ea7a7129-721d-450b-96ed-7b7558cad3d5

📥 Commits

Reviewing files that changed from the base of the PR and between 6ebed77 and abb56d4.

⛔ Files ignored due to path filters (1)
  • misc/wren-ai-architecture.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • README.md

Comment thread README.md
Comment on lines +19 to +20
<!-- TODO: replace 0000000000 with the real Discord server ID before publishing -->
[![Discord](https://img.shields.io/discord/0000000000?logo=discord&label=Discord)](https://discord.gg/wrenai)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Search for Discord invite links or server IDs in the repository

# Search for discord.gg invite links
rg -n 'discord\.gg/[a-zA-Z0-9]+' --type=md

# Search for Discord server ID patterns (typically 18-19 digit numbers)
rg -n 'discord.*[0-9]{17,19}' --type=md

Repository: Canner/WrenAI

Length of output: 2224


🏁 Script executed:

#!/bin/bash
# Search for Discord invite links
find . -type f -name "*.md" -o -name "*.json" -o -name "*.yaml" -o -name "*.yml" -o -name "*.config.*" | xargs grep -l "discord" 2>/dev/null | head -20

Repository: Canner/WrenAI

Length of output: 2205


🏁 Script executed:

#!/bin/bash
# Search for discord.gg links and server IDs in markdown files
grep -r "discord" . --include="*.md" --include="*.json" --include="*.yaml" --include="*.config.*" 2>/dev/null | grep -v "node_modules" | head -30

Repository: Canner/WrenAI

Length of output: 2205


Replace placeholder Discord server ID in the badge before publishing.

Lines 19-20 contain a TODO comment indicating the Discord server ID placeholder (0000000000) needs to be replaced with the actual server ID. The Discord badge will display a broken image until this is updated.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 19 - 20, Replace the placeholder Discord server ID
"0000000000" in the badge URL (the Markdown line containing
https://img.shields.io/discord/0000000000?logo=discord&label=Discord) with the
real Discord server ID so the badge renders correctly; keep the surrounding
badge Markdown and the invite link (https://discord.gg/wrenai) intact and verify
the badge image loads after updating the ID.

Comment thread README.md
Comment on lines +163 to +166
- [Quickstart](https://docs.getwren.ai/oss/get_started/quickstart) — from skill install to first answer
- [Concepts](https://docs.getwren.ai/oss/concepts/what_is_context) — what context is, what MDL is, how memory works
- [Connect a database](https://docs.getwren.ai/oss/guides/connect/overview) — Postgres, BigQuery, Snowflake, DuckDB, and more
- [Agent SDKs](https://docs.getwren.ai/oss/sdk/overview) — what's shipping today, what's next
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Description: Check if documentation URLs return successful responses

urls=(
  "https://docs.getwren.ai/oss/get_started/quickstart"
  "https://docs.getwren.ai/oss/concepts/what_is_context"
  "https://docs.getwren.ai/oss/guides/connect/overview"
  "https://docs.getwren.ai/oss/sdk/overview"
  "https://docs.getwren.ai/oss/reference/skills"
)

for url in "${urls[@]}"; do
  status=$(curl -s -o /dev/null -w "%{http_code}" "$url")
  if [ "$status" = "200" ]; then
    echo "$url (HTTP $status)"
  else
    echo "$url (HTTP $status)"
  fi
done

Repository: Canner/WrenAI

Length of output: 2224


🌐 Web query:

https://docs.getwren.ai/oss/get_started/quickstart documentation page

💡 Result:

The Wren AI OSS quickstart documentation provides a guide for using the Wren CLI to interact with datasets, such as the jaffle_shop example, using AI coding agents like Claude Code [1]. Prerequisites for this quickstart include: - Claude Code (installed and authenticated) [1] - Python 3.11+ [1] - Node.js / npm (required for installing skills) [1] - Git [1] The core steps outlined in the documentation are: 1. Create a Python virtual environment [1]. 2. Seed the jaffle_shop dataset [1]. 3. Install the wren-engine Python package [1]. 4. Install CLI skills (workflow guides for AI coding agents) using npx or a curl script [1]. 5. Set up a profile to store database connection information [1]. 6. Initialize a Wren project [1]. 7. Use Claude Code to explore the database and generate the MDL (Modeling Language) project [1]. 8. Begin asking natural-language questions against the dataset [1]. For users looking to connect their own data, separate documentation is available that covers loading CSV files through DuckDB and defining table relationships [2]. Additionally, general installation guides for Wren AI (using the Wren AI Launcher or shell) are provided for those who prefer a UI-based setup [3].

Citations:


🌐 Web query:

https://docs.getwren.ai/oss/concepts/what_is_context Wren AI concepts

💡 Result:

In the context of Wren AI, context refers to the structured business understanding that an AI agent requires to interact with data reliably and accurately [1][2]. It extends beyond raw database schemas and table access to provide a machine-readable, governed, and extensible layer that enables AI systems to reason, plan, and act on business data [1][3][2]. Key aspects of Wren AI context include: 1. Semantic Definitions: It encompasses the meaning of data, including metrics, entities, and their relationships [1][2]. 2. Operational Guidance: It provides the AI with source-of-truth guidance, modeling rules, reusable analytical logic, and governance expectations [1][2]. 3. Practical Instructions: It includes tribal knowledge and specific business conventions that shape how an agent should behave [1][2]. 4. Memory and Learning: Wren AI utilizes a memory layer that indexes schema context and stores confirmed natural language-to-SQL (NL-SQL) pairs, allowing agents to retrieve relevant information per question and learn from past interactions [1][4]. Wren AI Core (formerly Wren Engine) serves as the foundation for this context, utilizing Modeling Definition Language (MDL) to define models, relationships, calculations, and views [1][5][4]. By packaging this full business understanding, Wren AI shifts from traditional semantic layer thinking—which often focused solely on metric definitions—to a context-driven approach that makes metadata operational for AI agents [1][3][2]. This allows agents to move beyond simple SQL generation and instead perform reliable, explainable, and governed data interactions [6][2].

Citations:


🌐 Web query:

https://docs.getwren.ai/oss/guides/connect/overview Wren AI database connection

💡 Result:

To connect a database to Wren AI, the process depends on whether you are using the open-source (OSS) version or the cloud-based (CP) version. For the open-source version, you typically manage connections via the Wren AI CLI [1]. The general workflow involves: 1. Installing the necessary connector extra for your specific database (e.g., pip install "wren-engine[postgres]" for PostgreSQL) [1]. 2. Creating a connection profile using the CLI command wren profile add <profile-name> --ui, which opens a browser-based form to input your database credentials [1]. 3. Verifying the connection using wren profile debug to check the configuration or wren --sql "SELECT 1" to test actual connectivity [1]. 4. You can view required connection fields for any supported data source by running wren docs connection-info <datasource-name> [1]. For the cloud-based version (Wren AI Cloud), you connect data sources directly through the web interface [2]. The process generally includes: 1. Navigating to the "Connect a data source" section in the UI [2]. 2. Selecting your database type (e.g., MySQL, PostgreSQL, SQL Server) [2][3][4][5]. 3. Providing the required connection details, such as host, port, username, password, and database name [3][4][5][6]. 4. Ensuring that the Wren AI service's outbound IP address is allowlisted in your database's firewall settings [3][4][5]. 5. Selecting the specific tables you wish to use and defining relationships between them [3][4][5]. For local databases (e.g., MySQL) when using the OSS version, you may use host.docker.internal as the host address [6]. Additionally, some databases require specific permissions (e.g., SELECT, CREATE TEMPORARY VIEW, and DROP VIEW for PostgreSQL) to ensure stable modeling and query execution [5]. Always check the official documentation for your specific database type, as connection settings and requirements can vary [1][2].

Citations:


🌐 Web query:

https://docs.getwren.ai/oss/sdk/overview Wren AI SDK documentation

💡 Result:

The Wren AI SDKs are designed to integrate Wren AI Core—the system's semantic modeling and query execution layer—directly into popular AI agent frameworks [1]. By using these SDKs, developers can expose a CLI-prepared Wren project to their agents as a toolkit, enabling features like schema resolution, memory recall, and governed SQL execution without needing to re-implement the semantic layer [1]. Available SDKs include: - LangChain / LangGraph: Available as wren-langchain on PyPI [1]. - Pydantic AI: Available as wren-pydantic on PyPI [1]. Key capabilities provided by these SDKs include: - SQL Execution: Executing SQL through the semantic layer [2]. - Schema Awareness: Listing project models with descriptions and column counts [2]. - Context Retrieval: Fetching schema and business context for natural-language questions [2]. - Memory Recall: Surfacing similar past natural-language-to-SQL pairs as few-shot examples [2]. - Query Planning: Verifying that SQL targets Modeling Definition Language (MDL) models correctly without execution [2]. Important Usage Note: The Wren CLI must be used first to prepare the Wren project (including profile, MDL, and optional memory index) [1][2]. The SDKs act as thin adapters that attach to these pre-prepared projects; they will fail at construction if a project has not been initialized [2]. For users not utilizing these specific agent frameworks, Wren AI Core can also be accessed via the CLI, through skills compatible with AI coding agents (such as Claude Code or Cursor), or via the Model Context Protocol (MCP) [1].

Citations:


Fix incorrect documentation link path for "Concepts".

The Concepts documentation link at line 164 uses an incorrect URL path. Change:

  • https://docs.getwren.ai/oss/concepts/what_is_context

To:

  • https://docs.getwren.ai/oss/engine/concept/what_is_context

The other three documentation links (Quickstart, Connect a database, Agent SDKs) are correct and accessible.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 163 - 166, Update the "Concepts" markdown link so the
link target uses the correct path: replace the old URL
"https://docs.getwren.ai/oss/concepts/what_is_context" used for the "Concepts"
list item with the new URL
"https://docs.getwren.ai/oss/engine/concept/what_is_context" (leave the link
text "Concepts" and the other links unchanged).

@PaulChen79 PaulChen79 force-pushed the refactor/adjust-readme branch from abb56d4 to dc32d3f Compare May 15, 2026 07:07
Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@README.md`:
- Around line 159-160: The README currently links to a temporary file
vision_paper_en.md (linked as [vision paper](./vision_paper_en.md)) which will
break/publicly expose a TODO; either move the file to a permanent location (e.g.
docs/vision-paper.md or repo root) and update the link in README.md to point to
the new path, or remove/disable the [vision paper](./vision_paper_en.md) link
until the final file is published so the README no longer references the
temporary .tmp path.
- Around line 222-235: Update the fenced code block that displays the project
tree (the block beginning with the line showing "core/" followed by
"wren-core/", "wren-core-base/", etc.) so the opening fence includes a language
identifier (e.g., change ``` to ```text) to satisfy markdownlint MD040; keep the
block contents unchanged and only modify the opening fence token.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository UI

Review profile: CHILL

Plan: Pro

Run ID: 5b37b529-2315-4ef7-90ac-3f68179c9056

📥 Commits

Reviewing files that changed from the base of the PR and between abb56d4 and dc32d3f.

⛔ Files ignored due to path filters (1)
  • misc/wren-ai-architecture.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • README.md

Comment thread README.md
Comment on lines +159 to +160
<!-- TODO: vision_paper_en.md is currently at .tmp/roadmap-discuss/vision_paper_en.md — move to a published path (e.g. docs/vision-paper.md or repo root) and update this link before publishing. -->
Full roadmap and design notes: see the [vision paper](./vision_paper_en.md).
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Resolve the vision-paper TODO before publishing README.

Line 159 indicates the linked file path is temporary, but Line 160 already exposes the link publicly. Please either publish the file at the linked path or update/remove the link until the final location exists.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 159 - 160, The README currently links to a temporary
file vision_paper_en.md (linked as [vision paper](./vision_paper_en.md)) which
will break/publicly expose a TODO; either move the file to a permanent location
(e.g. docs/vision-paper.md or repo root) and update the link in README.md to
point to the new path, or remove/disable the [vision
paper](./vision_paper_en.md) link until the final file is published so the
README no longer references the temporary .tmp path.

Comment thread README.md
Comment on lines +222 to +235
```
core/
wren-core/ Rust semantic engine (Apache DataFusion)
wren-core-base/ Shared manifest types + MDL builder
wren-core-py/ Python bindings (PyPI: wren-core)
wren-core-wasm/ WebAssembly build (npm: wren-core-wasm)
wren/ Python SDK and CLI (PyPI: wren-engine)
wren-mdl/ MDL JSON schema
sdk/
wren-langchain/ Reference agent SDK integration
skills/ Agent skills for context authoring
docs/ Module documentation
examples/ Example projects
```
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Add a language to the fenced project-structure block.

The code fence starts without a language identifier, which triggers markdownlint MD040.

Suggested minimal fix
-```
+```text
 core/
   wren-core/         Rust semantic engine (Apache DataFusion)
   wren-core-base/    Shared manifest types + MDL builder
   wren-core-py/      Python bindings (PyPI: wren-core)
   wren-core-wasm/    WebAssembly build (npm: wren-core-wasm)
   wren/              Python SDK and CLI (PyPI: wren-engine)
   wren-mdl/          MDL JSON schema
 sdk/
   wren-langchain/    Reference agent SDK integration
 skills/              Agent skills for context authoring
 docs/                Module documentation
 examples/            Example projects
</details>

<details>
<summary>🧰 Tools</summary>

<details>
<summary>🪛 markdownlint-cli2 (0.22.1)</summary>

[warning] 222-222: Fenced code blocks should have a language specified

(MD040, fenced-code-language)

</details>

</details>

<details>
<summary>🤖 Prompt for AI Agents</summary>

Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @README.md around lines 222 - 235, Update the fenced code block that displays
the project tree (the block beginning with the line showing "core/" followed by
"wren-core/", "wren-core-base/", etc.) so the opening fence includes a language
identifier (e.g., change totext) to satisfy markdownlint MD040; keep the
block contents unchanged and only modify the opening fence token.


</details>

<!-- fingerprinting:phantom:triton:hawk -->

<!-- This is an auto-generated comment by CodeRabbit -->

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants