Nuxt DevTools integration for Claude Code AI assistant. Chat with Claude directly from your Nuxt DevTools panel with full support for skills, agents, and slash commands.
.claude/skills/<name>/SKILL.md).claude/agents/<name>.md).claude/commands/<name>.md).claude/docs/)# Using pnpm
pnpm add -D @oro.ad/nuxt-claude-devtools
# Using yarn
yarn add --dev @oro.ad/nuxt-claude-devtools
# Using npm
npm install --save-dev @oro.ad/nuxt-claude-devtools
nuxt.config.ts:export default defineNuxtConfig({
modules: ['@oro.ad/nuxt-claude-devtools'],
devtools: {
enabled: true,
},
claudeDevtools: {
enabled: true,
claude: {
command: 'claude', // Path to Claude CLI
args: [], // Additional CLI arguments
},
},
})
| Option | Type | Default | Description |
|---|---|---|---|
enabled | boolean | true | Enable/disable the module |
debug | boolean | false | Enable debug logging in console |
claude.command | string | 'claude' | Path to Claude CLI executable |
claude.args | string[] | [] | Additional arguments for Claude CLI |
Shift + Option + D or click the Nuxt icon)The module automatically uses --continue for follow-up messages within a session. Click "New Chat" to start a fresh conversation.
Add contextual information to your messages using the chips next to the input field:
| Chip | Context Provided |
|---|---|
| Viewport | App window dimensions (width × height) |
| User Agent | Browser and OS information |
| Routing | Current route path, query params, page component file |
Click a chip to toggle it on/off. Active chips will include their context with your next message.
Click "Add Component" to select Vue components directly from your running app. The component's file path will be included as context, allowing Claude to read and understand the component code.
Skills extend Claude's capabilities with specialized knowledge. Create markdown files with YAML frontmatter:
Location: .claude/skills/<skill-name>/SKILL.md
---
description: Vue 3 Composition API expert
model: sonnet
---
You are an expert in Vue 3 Composition API...
## Guidelines
- Always use `<script setup lang="ts">`
- Follow TypeScript best practices
Frontmatter options:
| Field | Description |
|---|---|
description | Brief description (required) |
model | Model to use: sonnet, opus, haiku |
argumentHint | Hint for skill arguments (e.g., <query>) |
Subagents are specialized AI agents that Claude can delegate tasks to:
Location: .claude/agents/<agent-name>.md
---
name: code-reviewer
description: Reviews code for quality and best practices
model: sonnet
tools: Read, Grep, Glob
skills:
- typescript-strict
- vue-composition-api
---
You are a code reviewer. Your job is to:
1. Review code for bugs and issues
2. Suggest improvements
3. Check for security vulnerabilities
Frontmatter options:
| Field | Description |
|---|---|
name | Agent name (kebab-case) |
description | Brief description |
model | Model: sonnet, opus, haiku |
tools | Comma-separated list of allowed tools |
disallowedTools | Tools to exclude |
skills | Array of skill names to preload |
permissionMode | default, acceptEdits, dontAsk, bypassPermissions, plan |
Create custom commands with markdown and YAML frontmatter:
Location: .claude/commands/<command-name>.md
---
description: Generate a Vue component
allowedTools: Read, Write, Edit
---
Generate a Vue 3 component with:
- `<script setup lang="ts">`
- Typed props with `defineProps<T>()`
- CSS variables for styling
Invoke with /<command-name> in the chat.
Store project documentation that Claude can reference:
Location: .claude/docs/
Create markdown files for architecture, components, API reference, etc. Claude will use these as context when answering questions about your project.
Manage Model Context Protocol servers directly from DevTools:
Example MCP servers:
npx -y @modelcontextprotocol/server-githubhttps://ui.nuxt.com/mcp (HTTP)┌─────────────────────────────────────────────────────────┐
│ Nuxt DevTools │
│ ┌───────────────────────────────────────────────────┐ │
│ │ Claude DevTools Panel │ │
│ │ (iframe at /__claude-devtools) │ │
│ │ │ │
│ │ Pages: │ │
│ │ - / Chat interface │ │
│ │ - /skills Skills manager │ │
│ │ - /agents Subagents manager │ │
│ │ - /commands Slash commands manager │ │
│ │ - /docs Documentation viewer │ │
│ │ - /mcp MCP servers config │ │
│ └───────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────┘
│
│ Socket.IO
▼
┌─────────────────────────────────────────────────────────┐
│ Claude Session Server │
│ ┌─────────────────┐ ┌─────────────────────────────┐│
│ │ Socket.IO Hub │───▶│ Claude CLI Process ││
│ │ │ │ (spawn with --continue) ││
│ │ Managers: │ └─────────────────────────────┘│
│ │ - Skills │ │
│ │ - Agents │ ┌─────────────────────────────┐│
│ │ - Commands │ │ File Storage ││
│ │ - Docs │ │ .claude/skills/ ││
│ │ - History │ │ .claude/agents/ ││
│ └─────────────────┘ │ .claude/commands/ ││
│ │ .claude/docs/ ││
│ └─────────────────────────────┘│
└─────────────────────────────────────────────────────────┘
.claude/
├── settings.local.json # Local permissions
├── skills/ # Skills (markdown)
│ └── <skill-name>/
│ └── SKILL.md
├── agents/ # Subagents (markdown)
│ └── <agent-name>.md
├── commands/ # Slash commands (markdown)
│ └── <command-name>.md
└── docs/ # Documentation
└── *.md
# Install dependencies
npm install
# Install dependencies for client
cd ./client
npm install
cd ../
# Generate type stubs
npm run dev:prepare
# Start playground with hot reload
npm run dev
# Build for production
npm run prepack
# Run linter
npm run lint
├── src/
│ ├── module.ts # Nuxt module definition
│ ├── devtools.ts # DevTools UI setup
│ └── runtime/
│ ├── logger.ts # Logging utility
│ └── server/
│ ├── claude-session.ts # Socket.IO server & Claude process
│ ├── skills-manager.ts # Skills CRUD operations
│ ├── agents-manager.ts # Agents CRUD operations
│ ├── commands-manager.ts # Commands CRUD operations
│ ├── docs-manager.ts # Documentation management
│ └── history-manager.ts # Chat history management
├── client/ # DevTools panel UI (Nuxt app)
│ ├── pages/
│ │ ├── index.vue # Chat interface
│ │ ├── skills.vue # Skills manager
│ │ ├── agents.vue # Subagents manager
│ │ ├── commands.vue # Slash commands manager
│ │ ├── docs.vue # Documentation viewer
│ │ └── mcp.vue # MCP servers management
│ ├── composables/
│ │ ├── useClaudeChat.ts # Socket, messages, session
│ │ ├── useMessageContext.ts # Context chips logic
│ │ ├── useVoiceInput.ts # Speech recognition
│ │ ├── useAutocomplete.ts # Docs/commands autocomplete
│ │ └── useComponentPicker.ts # Component selection
│ └── nuxt.config.ts
└── playground/ # Development playground
Check out real-world use cases and demos at nuxt-claude-devtools.oro.ad
Have an interesting use case? We'd love to feature it! Send your story to jobsbystr@gmail.com.
nuxt.options.dev)--dangerously-skip-permissions flag for Claude CLI (development only).claude/ directoryThis project is licensed under the GNU General Public License v3.0 (GPL-3.0).