Preparing your workspace...

assistant-chat.tsx2.5k
utils.ts850
button.tsx720
Quick Actions
codmirDevelopers
MarketplaceMy Apps
Go to codmirSign In
Back to AI Docs

Quick Start

Get the AI Service running and make your first API call in under 5 minutes.

1

Configure Environment

Use internal API routing in your environment variables:

# .env.local
FEATURE_REMOTE_AI_DISPATCH="false"

# Optional: external remote-dispatch override (disabled by default)
NEXT_PUBLIC_AI_SERVICE_URL=""
2

Use the Chat Hook

Import and use the useAIChat hook in your component:

'use client'

import { useAIChat } from '@/hooks/use-ai-chat'

export function ChatComponent({ projectId }: { projectId: string }) {
  const {
    messages,
    isStreaming,
    sendMessage,
    stopStream,
  } = useAIChat({
    projectId,  // Enables knowledge-aware responses
    provider: 'openai',
    model: 'gpt-5',
  })

  const handleSubmit = (input: string) => {
    sendMessage(input)
  }

  return (
    <div>
      {messages.map((msg) => (
        <div key={msg.id}>
          <strong>{msg.role}:</strong> {msg.content}
          {msg.isStreaming && <span className="animate-pulse">▊</span>}
        </div>
      ))}
      <form onSubmit={(e) => {
        e.preventDefault()
        handleSubmit(e.currentTarget.input.value)
      }}>
        <input name="input" disabled={isStreaming} />
        <button type="submit">Send</button>
      </form>
    </div>
  )
}
3

Generate Knowledge Base

Index your project to enable context-aware responses:

import { useAITask } from '@/hooks/use-ai-task'

function KnowledgeButton({ projectId }: { projectId: string }) {
  const { generateKnowledgeBase, task, isPolling } = useAITask({
    onComplete: (status) => {
      console.log('Indexed!', status.result)
    },
  })

  return (
    <button
      onClick={() => generateKnowledgeBase(projectId)}
      disabled={isPolling}
    >
      {isPolling ? 'Indexing...' : 'Generate Knowledge Base'}
    </button>
  )
}
4

Direct API Access (Optional)

For non-React environments, use the AI client directly:

import { getAIClient } from '@/lib/ai/client'

const client = getAIClient()

// Non-streaming chat
const response = await client.chat({
  messages: [{ role: 'user', content: 'How is auth implemented?' }],
  projectId: 'my-project',
})

// Streaming chat
for await (const chunk of client.streamChat({
  messages: [{ role: 'user', content: 'Explain the architecture' }],
  projectId: 'my-project',
})) {
  process.stdout.write(chunk.content || '')
}

What's Next?

  • Learn about the Chat API and streaming
  • Understand the Knowledge Base system
  • Explore the AI + Agent architecture
AI OverviewChat API

Documentation

  • Getting Started
  • API Reference
  • SDK & CLI
  • Webhooks
  • Guides

Marketplace

  • Browse Apps
  • Featured Apps
  • Official Apps
  • Submit Your App

Resources

  • Community
  • Discord
  • GitHub
  • Blog

Company

  • About codmir
  • Careers
  • Status
  • Contact
codmirDevelopers
TermsPrivacyAPI TermsCodmir™ 2026. All rights reserved.