Best use case
iblai-invite is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Add user invitation dialogs to your Next.js app
Teams using iblai-invite should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
$curl -o ~/.claude/skills/iblai-invite/SKILL.md --create-dirs "https://raw.githubusercontent.com/iblai/vibe/main/skills/iblai-invite/SKILL.md"
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/iblai-invite/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How iblai-invite Compares
| Feature / Agent | iblai-invite | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Add user invitation dialogs to your Next.js app
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# /iblai-invite
Add user invitation features -- a dialog to invite new users to a platform by
email/username and a dialog showing pending invitations with status tracking.

Do NOT add custom styles, colors, or CSS overrides to ibl.ai SDK components.
They ship with their own styling. Keep the components as-is.
Do NOT implement dark mode unless the user explicitly asks for it.
When building custom UI around SDK components, use the ibl.ai brand:
- **Primary**: `#0058cc`, **Gradient**: `linear-gradient(135deg, #00b0ef, #0058cc)`
- **Button**: `bg-gradient-to-r from-[#2563EB] to-[#93C5FD] text-white`
- **Font**: System sans-serif stack, **Style**: shadcn/ui new-york variant
- Follow the component hierarchy: use ibl.ai SDK components
(`@iblai/iblai-js`) first, then shadcn/ui for everything else
(`npx shadcn@latest add <component>`). Do NOT write custom components
when an ibl.ai or shadcn equivalent exists. Both share the same
Tailwind theme and render in ibl.ai brand colors automatically.
- Follow [BRAND.md](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/BRAND.md) for
colors, typography, spacing, and component styles.
You MUST run `/iblai-ops-test` before telling the user the work is ready.
After all work is complete, start a dev server (`pnpm dev`) so the user
can see the result at http://localhost:3000.
`iblai.env` is NOT a `.env.local` replacement — it only holds the 3
shorthand variables (`DOMAIN`, `PLATFORM`, `TOKEN`). Next.js still reads
its runtime env vars from `.env.local`.
Use `pnpm` as the default package manager. Fall back to `npm` if pnpm
is not installed. The generated app should live in the current directory,
not in a subdirectory.
> **Common setup (brand, conventions, env files, verification):** see [docs/skill-setup.md](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/docs/skill-setup.md).
## Prerequisites
- Auth must be set up first (`/iblai-auth`)
- MCP and skills must be set up: `iblai add mcp`
- User must have admin privileges on the platform to send invitations
## Step 0: Check for CLI Updates
Before running any `iblai` command, ensure the CLI is
up to date. Run `iblai --version` to check the current version, then
upgrade directly:
- pip: `pip install --upgrade iblai-app-cli`
- npm: `npm install -g @iblai/cli@latest`
This is safe to run even if already at the latest version.
## Step 1: Check Environment
Before proceeding, check for a `iblai.env`
in the project root. Look for `PLATFORM`, `DOMAIN`, and `TOKEN` variables.
If the file does not exist or is missing these variables, tell the user:
"You need an `iblai.env` with your platform configuration. Download the
template and fill in your values:
`curl -o iblai.env https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/iblai.env`"
## Step 2: Add the Components
There is no dedicated CLI generator for invite dialogs. Import the components
directly from the SDK:
```typescript
import { InviteUserDialog, InvitedUsersDialog } from "@iblai/iblai-js/web-containers";
```
## Step 3: Use MCP Tools for Customization
```
get_component_info("InviteUserDialog")
get_component_info("InvitedUsersDialog")
```
## `<InviteUserDialog>` Props
Dialog to invite a user to the current platform by email or username.
| Prop | Type | Description |
|------|------|-------------|
| `isOpen` | `boolean` | Whether the dialog is visible |
| `onClose` | `() => void` | Close callback |
| `org` | `string` | Platform key |
## `<InvitedUsersDialog>` Props
Dialog showing pending invitations with their status (accepted, pending, expired).
| Prop | Type | Description |
|------|------|-------------|
| `isOpen` | `boolean` | Whether the dialog is visible |
| `onClose` | `() => void` | Close callback |
| `org` | `string` | Platform key |
## Example Usage
Add invite buttons to an admin settings page or account page:
```tsx
"use client";
import { useState } from "react";
import { InviteUserDialog, InvitedUsersDialog } from "@iblai/iblai-js/web-containers";
import { Button } from "@/components/ui/button";
import { resolveAppTenant } from "@/lib/iblai/tenant";
export function InviteSection() {
const [showInvite, setShowInvite] = useState(false);
const [showPending, setShowPending] = useState(false);
const tenant = resolveAppTenant();
return (
<div className="flex gap-2">
<Button onClick={() => setShowInvite(true)}>Invite User</Button>
<Button variant="outline" onClick={() => setShowPending(true)}>
View Pending
</Button>
<InviteUserDialog
isOpen={showInvite}
onClose={() => setShowInvite(false)}
org={tenant}
/>
<InvitedUsersDialog
isOpen={showPending}
onClose={() => setShowPending(false)}
org={tenant}
/>
</div>
);
}
```
## Step 4: Verify
Run `/iblai-ops-test` before telling the user the work is ready:
1. `pnpm build` -- must pass with zero errors
2. Start dev server and verify dialogs open correctly:
```bash
pnpm dev &
npx playwright screenshot http://localhost:3000 /tmp/invite.png
```
## Important Notes
- **Import**: `@iblai/iblai-js/web-containers` -- framework-agnostic
- **Admin only**: Invitation features require admin privileges on the platform
- **Redux store**: Must include `mentorReducer` and `mentorMiddleware`
- **`initializeDataLayer()`**: 5 args (v1.2+)
- **`@reduxjs/toolkit`**: Deduplicated via webpack aliases in `next.config.ts`
- **Brand guidelines**: [BRAND.md](https://raw.githubusercontent.com/iblai/vibe/refs/heads/main/BRAND.md)Related Skills
We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.