Ai kode app

Kode App — Consumer AI Chat Client

  • *rea:*AI
  • *ath:*services/ai/kode/app
  • *ind:*Flutter multiplatform app
  • *ersion:*1.7.7
  • *tatus:*Active

Role in the stack

Kode is the consumerfacing AI client of the Koder stack. It connects endusers to ai/gateway for unified access to all AI providers (Claude, GPT-4o, Gemini, Llama, etc.) through a single, polished interface. Unlike ai/ai (the SaaS admin hub), Kode is a personal AI assistant — think of it as Koder's answer to ChatGPT and Claude.ai.

Core capabilities

Capability Details
Multi-model chat Claude, GPT4o, Gemini 2.5 Pro, Llama 4 Maverick; autoselect via gateway benchmarks
Conversation folders Sidebar sections for folders and unfiled chats; createdeletemove UI backed by persisted folderId
Multimodal input Text, images, video, audio, PDFs, 30+ code/doc formats
Streaming Server-Sent Events (SSE) via ai/gateway
Code execution PythonJSshell in gateway sandbox (POST /v1/code/execute)
Screenshot capture Full-screen capture on Linux (grim/scrot), macOS (screencapture), Windows (PowerShell)
Local shell exec AI executes commands on user's machine; percommand confirmation dialog; optin
Yolo Mode Autoapprove all tool calls without dialogs; autodisables after 30 min idle; Desktop only
Dry-Run Mode Preview tool calls (returns simulated result, does not execute); Desktop only
Computer use Agentic desktop loop: screenshot → AI → input action → repeat; xdotool/osascript
Desktop ambient context Chronicle extended for Desktop: git state (branchstatuslog) + last 20 shell commands injected as context on each message
Canvas/Artifacts Code and HTML outputs in live side panel
Voice I/O Speechtotext + TTS
Chat modes Default / Code / Ask / Architect — modespecific systemprompt prefix injected per conversation; chip row selector above input
Custom personas Systemprompt personas; usercreated
Chronicle Memory injection, secure local memory persistence, clipboard watch, file watcher, screen capture for context
Embeddable replay <kode-conversation> renders Kode transcripts in Flow and other Koder products
Public share links Signedin conversations publish to durable unlisted readonly URLs on kode.koder.dev/share/{id}
Humanized errors Shared HumanizedError model and reusable detail UI expose stable KODE-... IDs while hiding raw technical failures by default
Invokable subagents Named agent personas (e.g. @reviewer, @coder) invoked via @<name> <task> in chat; autocomplete panel; per-conversation dispatch; distinct from custom personas
LSP integration Desktoponly: attaches language servers (gopls, pyright, dartls, rustanalyzer, etc.) and injects diagnostics into the LLM system prompt; lsp_hover tool lets the AI query hover info; perconversation lspEnabled toggle; LspServersScreen in Settings
Koder Flow git context Attach a Gitea repo to any conversation via PAT auth; file tree injected into system prompt; + Repo chip in chat toolbar; RepoPickerSheet bottom-sheet browser; GiteaProvider (REST API v1); secure PAT storage
BYOK User-supplied API keys stored in platform secure storage and forwarded to gateway
Self-update Checks Koder Hub for new versions; toggle in Settings (default ON, 24h throttle)
Find in conversation Ctrl+F fulltext search bar; amberhighlighted focused match; ↑/↓ navigation
PDF export Export single or all conversations as paginated PDF
Keyboard shortcuts Ctrl+NKFEPShift+CEscapeEnter; documented in Ctrl+ panel
Koder ID login Account section in Settings; OIDC sign-in/out; user name + email display

Primary couplings

Service Relationship
ai/gateway All AI requests; code execution; tool calls
services/ai/kode/platform Publishes public conversation share links and renders read-only shared transcripts
foundation/id OIDC auth (Resource Owner Password Credentials + refresh)
dev/store Self-update checks; Koder Hub SDK
engines/sdk/koder_kit App shell integration: KoderApp, auth/session plumbing, theming, update checks
ai/voice TTS and STT backend (optional)
engines/sdk/js <kode-conversation> Web Component for transcript replay

Architecture

lib/
  core/        Constants, theme, GoRouter
  models/      Message, Conversation, Folder, Attachment, AIModel, Persona, ToolCall
  services/    AIService, AuthService, LocalExecutionService,
               ScreenCaptureService, ComputerUseService, VoiceService,
               CodeRunnerService, DocumentService, BuiltinToolsService,
               ApiKeyService, MemoryService, SubagentsService,
               SlashCommandsService, PluginsService, McpClientService,
               LspService
  providers/   Riverpod 3: settings, models, chat, conversation, localExec,
               computerUse, voice, image/video gen, persona, memory, API keys,
               subagents, slash commands, plugins, MCP servers, LSP
  screens/     HomeScreen, ChatScreen, SettingsScreen, LoginScreen,
               ComputerUsePanel, MemoryBrowserScreen, SubagentsScreen,
               SlashCommandsScreen, PluginsScreen, McpServersScreen,
               LspServersScreen
  widgets/     ChatInput, MessageBubble, CodeBlock, ArtifactPanel,
               ModelSelector, AttachmentPreview, VideoPlayerWidget,
               ErrorMessageView, KodeUserBadge

SDK widget adoption

Widget Where Notes
KoderSignInButton login_screen.dart PKCE + ROPC flows Adopted in #084 slices 1+2
KoderUserBadge (via KodeUserBadge adapter) home_screen AppBar narrow + chat_screen header wide AuthUser → KoderUser adapter in widgets/user_badge.dart (#084 slice 3)
KoderAuthGate not adopted requires AuthService → KoderAuth migration; tracked as #086

*tack:*Flutter 3.41 · Dart 3.11 · Riverpod 3 · GoRouter 17 · Material 3

Platforms

Platform Status Binary
Linux ✅ Shipping .deb
Android ✅ Shipping .apk
Web ✅ Shipping kode.koder.dev
Windows ✅ Shipping .msix
macOS 🔧 Build pending .dmg
iOS 🔧 Build pending TestFlight

Computer Use — security model

Computer Use and Local Execution are *ptin only*(disabled by default). The user must explicitly enable them in Settings → Tools with a security warning dialog. Each shell command shows a confirmation dialog unless the user grants sessionwide permission. Computer Use additionally requires Local Execution to be enabled first. The agentic loop runs max 50 steps with a 2 s minimum delay between actions.

Changelog highlights

Version Date Summary
1.7.3 20260509 Koder Flow git integration: PAT auth, GiteaProvider (REST API v1), RepoPickerSheet, file tree injected in system prompt, + Repo chip in chat toolbar, Conversation.gitRepoUrl field
1.7.2 20260509 Slash command autocomplete panel (/ triggers dropdown of built-in + custom commands); Undo button on last assistant bubble dispatches /undo
1.7.1 20260509 Invokable subagents (@name dispatch + autocomplete panel); LSP integration (LspService, goplspyrightrustanalyzer/dartls, diagnostics→systemprompt, lsp_hover tool, perconversation toggle, LspServersScreen); Riverpod 2→3 migration for 4 providers (MCPpluginsslash-commands/subagents)
1.5.1 20260427 Request timeout (10s models, 30s stream); settings slider debounce; token usage chip in message bubble; log viewer in Settings; TTFT/latency logging; BYOK cache invalidation on key change
1.5.0 20260427 Streaming write batching (no per-token storage write); stream debounce for all paths; web notification fallback; persona via StorageService; command sanitizer hardening (+9 patterns); unawaited memory error logging
1.4.9 20260427 Model list cache (24h TTL); structured logging (AppLogger + named loggers); error catalog (KodeErrors constants, AIException type, docstechnicalerrors.md)
1.4.8 20260427 Chat modes (DefaultCodeAsk/Architect) — mode chip row above input, persisted per conversation, system-prompt prefix injection
1.4.7 20260427 Thinking tokens & reasoning effort settings
1.4.6 20260427 Streaming debounce; local exec danger warnings
1.4.5 20260427 Desktop push notifications (Linux/macOS)
1.4.4 20260427 Yolo mode, dry-run mode, desktop ambient context, humanized errors
1.4.3 20260424 Flow and Koder Hub release with Android APK and Linux .deb assets; public share links; web release build restored; secure BYOK and Chronicle storage; folder UI exposed
1.4.2 20260423 PKCE auth implementation and secure token storage
1.4.1 20260422 Account section in Settings (Koder ID sign-in/out); /memory CLI; Chronicle toggles
1.4.0 20260422 Screenshot capture, local shell execution, computer use agent
1.3.7 20260422 App icon restored to official triskelion
1.3.4 20260422 Auto-select model, BYOK API keys
1.3.2 20260422 Real OIDC auth (Koder ID)

Source: ../home/koder/dev/koder/meta/docs/stack/modules/ai-kode-app.md