ngx-prompt-kit

ngx-prompt-kit

AI chat components for Angular.

Standalone, signal-based components for building AI interfaces. Composes with Spartan UI. Distributed via schematics — the source lives in your project, not in a black-box dependency.

What you write

<pk-prompt-input [(value)]="value" (submitted)="onSubmit()">
  <pk-prompt-input-textarea placeholder="Ask ngx-prompt-kit anything..." />
  <pk-prompt-input-actions class="mt-2 justify-between">
    <div class="flex items-center gap-1">
      <pk-prompt-input-action tooltip="Attach files">
        <button hlmBtn variant="ghost" size="icon-sm">
          <ng-icon hlm size="sm" name="lucidePlus" />
        </button>
      </pk-prompt-input-action>
      <pk-prompt-input-action tooltip="Search the web">
        <button hlmBtn variant="outline" size="sm">
          <ng-icon hlm size="xs" name="lucideGlobe" />
          Search
        </button>
      </pk-prompt-input-action>
    </div>
    <pk-prompt-input-action tooltip="Send message">
      <button hlmBtn size="icon-sm" (click)="onSubmit()">
        <ng-icon hlm size="xs" name="lucideArrowUp" />
      </button>
    </pk-prompt-input-action>
  </pk-prompt-input-actions>
</pk-prompt-input>

Built for the Angular way of working.

Schematic distribution

Components are copied into your project via ng generate. You own the source — edit, fork, version it on your terms.

Built on Spartan UI

Composes with Spartan helm primitives (button, tooltip, avatar, textarea). Theme-consistent out of the box.

Signal-based + standalone

Every component uses input(), output(), computed(). No NgModules. Zoneless-friendly. OnPush throughout.

AI-chat-ready primitives

Streaming responses, markdown with code highlighting, file drop zones, expanding reasoning blocks — the AI surface area covered.

Tailwind v4 native

Plain Tailwind utility classes, no proprietary CSS-in-JS. Inherits your existing design tokens.

SSR-safe

Browser APIs (clipboard, ResizeObserver, requestAnimationFrame) guarded behind isPlatformBrowser. Renders on the server without crashing.