-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
ai-video-editorAI Video Editor Flutter appAI Video Editor Flutter appfeatureNew feature implementationNew feature implementationflutterFlutter/Dart implementationFlutter/Dart implementationphase-1Phase 1: Core InfrastructurePhase 1: Core Infrastructure
Description
Summary
Implement a comprehensive settings system covering general preferences, generation defaults, performance tuning, notifications, and advanced developer options. A well-designed settings system reduces friction and allows power users to tune behavior to their workflow.
Requirements
API Keys
The Settings screen must include a dedicated API Keys tab or section where users configure credentials for all external AI services. Without valid API keys, generation features are disabled.
Anthropic (Claude)
- API key input field (masked, show/hide toggle)
- Link to https://console.anthropic.com to get a key
- Validate key on save (make a lightweight test call)
- Connection status indicator: Connected / Invalid key / Not set
- Used for: Storytelling Agent, prompt enhancement, quality analysis, caption translation
Replicate
- API key input field (masked, show/hide toggle)
- Link to https://replicate.com/account/api-tokens to get a key
- Validate key on save
- Connection status indicator
- Used for: AI video generation, text-to-image generation
ElevenLabs
- API key input field (masked, show/hide toggle)
- Link to https://elevenlabs.io to get a key
- Validate key on save
- Connection status indicator
- Used for: Voice narration generation, voice cloning
Storage
- API keys must be stored securely using the platform keychain:
- macOS: Keychain Access
- iOS: iOS Keychain
- Other: Encrypted local storage (AES-256)
- Keys are never stored in plain text or included in exported project files
- "Clear all API keys" button with confirmation dialog
UX Notes
- On first launch, if no API keys are set, show a setup banner/wizard guiding user to the Settings -> API Keys screen
- Each generation feature should show a clear error if the relevant API key is missing (not just fail silently)
- Test connection button per service
General
- Theme: Light, Dark, System
- Language (i18n support structure)
- Default project save location
- Auto-save interval
Generation Defaults
- Default video model
- Default image model
- Default voice
- Default resolution
- Default FPS
- Default quality preset
Performance
- Max concurrent generations (1-5)
- Cache size limit
- Temp file cleanup policy
Notifications
- Generation complete notification
- Error notifications
- Sound on complete
Privacy
- Analytics opt-in/out
- Crash reporting
Advanced
- Custom FFmpeg path
- Custom Replicate base URL (for proxies)
- Debug logging level
- Developer mode (show raw API responses)
Acceptance Criteria
- Theme switcher applies Light/Dark/System correctly
- Generation defaults apply to all new scenes
- Concurrent generation limit is enforced in the generation queue
- Notifications fire correctly on generation completion and errors
- Developer mode exposes raw API response panels
Related
Part of the ai-video-editor Flutter application. Settings used throughout the app, especially by #65 (Video Generation) and #61 (Project Management).
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
ai-video-editorAI Video Editor Flutter appAI Video Editor Flutter appfeatureNew feature implementationNew feature implementationflutterFlutter/Dart implementationFlutter/Dart implementationphase-1Phase 1: Core InfrastructurePhase 1: Core Infrastructure