## What 1. Add `suppressHydrationWarning` to `<body>` across **all 14 integration demo templates** (`examples/integrations/*/src/app/layout.tsx`). 2. Fix a pre-existing **double-escaped Windows path** bug in the parity manifest's `packageJsonOverrides`. ## Why (hydration) **Mike Ryan hit a hydration error on first load of a fresh `langgraph-python` init — caused by his Grammarly browser extension.** Grammarly (and similar extensions) inject attributes onto `<body>` *before* React hydrates: ``` data-new-gr-c-s-check-loaded="9.98.0" data-gr-ext-installed="" ``` Those attributes are in the client DOM but absent from the server HTML, so Next.js reports: > A tree hydrated but some attributes of the server rendered HTML didn't match the client properties. It's a **false positive** — the app works, and end users (without dev extensions) never see it — but it's a red console error on the first load of our flagship eval/showcase templates, which is a poor first impression. ## Fix (hydration) `suppressHydrationWarning` on `<body>` is the React/Next.js-recommended escape hatch for this. It is **scoped and one level deep**: it only relaxes the check for `<body>`'s *own* attributes/text — **everything rendered inside `<body>` (the whole app) is still fully hydration-checked** — and `<body>`'s only attribute here is a static `className`, so none of our own markup is masked. An inline comment documents this so a future maintainer who adds dynamic `<body>` attributes knows the check is relaxed. `agent-spec` already had `suppressHydrationWarning` on `<html>`; the Grammarly attributes land on `<body>`, so it needed the body-level relaxation too (the `<html>` one is a level up and doesn't cover `<body>`'s attributes). ## Commits 1. `b1fa482a7` — north-star (`langgraph-python`) + parity instances (`langgraph-js`, `langgraph-fastapi`, `strands-python`) via `pnpm parity:sync`. 2. `9f9c415d9` — the non-parity templates (not tracked by `_parity/manifest.json`): `adk`, `agno`, `crewai-crews`, `crewai-flows`, `llamaindex`, `mastra`, `ms-agent-framework-dotnet`, `ms-agent-framework-python`, `pydantic-ai`, `agent-spec`. *(The repo's `oxfmt` pre-commit hook also collapsed some multiline `<CopilotKit …>` JSX in these files — standard auto-format on touched files; the only semantic change is the suppression.)* 3. `7d60e49de` — parity manifest path-escaping fix (see below). ## The manifest bug (commit 3) While syncing I found the `langgraph-js` and `strands-python` `packageJsonOverrides` double-escaped the Windows `.bat` fallback, producing `scripts\\run-agent.bat` (two backslashes) instead of `scripts\run-agent.bat`: - `langgraph-js/package.json` had already been synced with the broken value. - `strands-python/package.json` was still correct — and `parity:sync` would have **corrupted** it on the next run (which is what surfaced this). Fixed the three overrides and re-ran `parity:sync`, which corrects `langgraph-js/package.json` and leaves `strands-python`'s correct value intact. ## Test plan - [x] `pnpm parity:verify` → 0 errors - [x] lefthook pre-commit green on all 3 commits (lint + `packages/**` tests + commitlint) - [x] All 14 templates confirmed to have body-level `suppressHydrationWarning` - [ ] Reviewer with Grammarly installed: run/`init` a template and confirm no hydration error on first load
CopilotKit <> CrewAI Flow Starter
This is a starter template for building AI agents using CrewAI Flows and CopilotKit. It provides a modern Next.js application with an integrated CrewAI Flow agent to be built on top of.
Prerequisites
- Node.js 18+
- Python 3.10+
- uv - Fast Python package installer and resolver
- Any of the following package managers:
- OpenAI API Key (for the CrewAI Flow agent)
Getting Started
- Install dependencies using your preferred package manager:
# Using npm (default)
npm install
# Using pnpm
pnpm install
# Using yarn
yarn install
# Using bun
bun install
Note: Installing the package dependencies will also install the agent's Python dependencies via the
install:agentscript usinguv. This will automatically create a virtual environment and install dependencies frompyproject.toml.
- Set up your OpenAI API key:
echo "OPENAI_API_KEY=your-openai-api-key-here" > .env
- Start the development server:
# Using npm (default)
npm run dev
# Using pnpm
pnpm dev
# Using yarn
yarn dev
# Using bun
bun run dev
This will start both the UI and agent servers concurrently.
Available Scripts
The following scripts can also be run using your preferred package manager:
dev- Starts both UI and agent servers in development modedev:ui- Starts only the Next.js UI serverdev:agent- Starts only the CrewAI Flow agent serverbuild- Builds the Next.js application for productionstart- Starts the production serverinstall:agent- Installs Python dependencies for the agent usinguv
Documentation
The main UI component is in src/app/page.tsx. You can:
- Modify the theme colors and styling
- Add new frontend actions
- Utilize shared-state
- Customize your user-interface for interacting with CrewAI Flow
📚 Documentation
- CopilotKit Documentation - Explore CopilotKit's capabilities
- CrewAI Flow Documentation - Learn more about CrewAI Flow and its features
- Next.js Documentation - Learn about Next.js features and API
Contributing
Feel free to submit issues and enhancement requests! This starter is designed to be easily extensible.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Troubleshooting
Agent Connection Issues
If you see "I'm having trouble connecting to my tools", make sure:
- The CrewAI Flow agent is running on port 8000
- Your OpenAI API key is set correctly
- Both servers started successfully