-
Notifications
You must be signed in to change notification settings - Fork 474
feat: add web ui for kimi cli #775
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
… in chat components
…keyboard shortcuts
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull request overview
This PR adds a comprehensive web user interface for Kimi CLI, enabling users to interact with the tool through a browser-based GUI instead of the command line.
Changes:
- Added a full-featured React/TypeScript web application with chat interface, session management, and configuration controls
- Implemented FastAPI backend with WebSocket support for real-time session streaming
- Added web UI build tooling and integration with the existing CLI command structure
Reviewed changes
Copilot reviewed 98 out of 164 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| web/src/hooks/useGlobalConfig.ts | React hook for managing global configuration state with API integration |
| web/src/hooks/useConfigToml.ts | React hook for loading and saving TOML configuration files |
| web/src/hooks/use-theme.ts | Theme management hook with animated transitions and system preference sync |
| web/src/hooks/types.ts | TypeScript type definitions for messages, sessions, and chat operations |
| web/src/features/tool/store.ts | Zustand store for tracking tool execution events and file changes |
| web/src/features/settings/settings-dialog.tsx | Settings dialog component with font preferences and TOML editor |
| web/src/features/settings/global-config-controls.tsx | Component for global model and thinking mode configuration |
| web/src/features/settings/font-preference.ts | Font preference persistence utilities |
| web/src/features/settings/events.ts | Custom event system for global config change notifications |
| web/src/features/sessions/create-session-dialog.tsx | Dialog for creating new sessions with working directory selection |
| web/src/features/chat/message-search-utils.ts | Utilities for searching through chat messages with context |
| web/src/features/chat/file-mention-menu.tsx | Autocomplete menu for @-mentioning workspace files |
| web/src/features/chat/components/*.tsx | Chat UI components including message list, workspace header, prompt composer |
| web/src/components/ui/*.tsx | Reusable UI components (buttons, dialogs, inputs, etc.) |
| web/src/components/ai-elements/*.tsx | AI-specific UI elements for tools, reasoning, code blocks |
| web/package.json | Frontend dependencies and build scripts |
| web/scripts/generate-api.sh | Script to generate TypeScript API client from OpenAPI spec |
| src/kimi_cli/web/app.py | FastAPI application setup with CORS, static file serving, and port detection |
| src/kimi_cli/web/api/config.py | API endpoints for reading/writing configuration |
| src/kimi_cli/web/store/sessions.py | Session storage layer with in-memory caching |
| src/kimi_cli/web/runner/worker.py | Subprocess worker for running KimiCLI sessions |
| src/kimi_cli/cli/web.py | CLI command to launch the web server |
| pyproject.toml | Added web UI Python dependencies (FastAPI, uvicorn, etc.) |
| Makefile | Added format-web target for frontend code formatting |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
xxchan
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
rubber stamp
Description
Add Web GUI for Kimi CLI.
Checklist
make gen-changelogto update the changelog.make gen-docsto update the user documentation.