New command line options:
- --demo: Interactive demo mode (no changes made)
- --dry-run: Preview what would be done without doing it
- --help/-h: Show usage information
- --version/-v: Show version number
- --force/-f: Skip confirmation prompts
Safety improvements:
- Automatic backup of .env and config.json before overwriting
- Backups saved as filename.backup.YYYYMMDD_HHMMSS
- Dry-run shows all actions that would be taken
- Demo mode lets users see the beautiful UI safely
Version bumped to 2.2.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Detect gum and offer to install for enhanced UX
- Add wrapper functions with graceful bash fallback:
- gum_choose: Interactive option selection
- gum_confirm: Yes/no prompts
- gum_input: Text input
- gum_password: Hidden input
- gum_spin: Animated spinners
- gum_style_box: Styled boxes
- Works perfectly without gum, beautiful with it
- Supports macOS (Homebrew), Debian/Ubuntu (apt), and Go install
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
✨ New Features:
- Beautiful CLI installer (setup-claude-os.sh) with ASCII art,
progress bars, spinners, and styled prompts
- Choose between Local (Ollama) or Cloud (OpenAI) providers
- Lite model (llama3.2:3b) as default - faster download, works on more machines
- Full model (llama3.1:8b) option for users who want better quality
- OpenAI API support for users who prefer cloud
🔧 Changes:
- setup.sh and install.sh now redirect to setup-claude-os.sh
- config.py updated with provider support and new defaults
- Works on both macOS and Linux
📦 Default Model Change:
- Before: llama3.1:latest (8B, 4.7GB download)
- After: llama3.2:3b (3B, 2GB download)
This makes Claude OS accessible to more users with smaller machines
while still offering the full experience for power users.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Previously, if ~/.claude already existed from a prior Claude Code
installation, the install script would skip creating the commands/
and skills/ subdirectories. This caused symlink creation to fail
silently, leaving users without access to /claude-os-init and other
commands.
This fix ensures the subdirectories are always created, regardless
of whether ~/.claude already exists.
Fixes issue where /claude-os-init command was not available after
running install.sh on systems with existing ~/.claude directory.
Fixes#7
- Add frontend/src/lib/auth.tsx with AuthProvider and useAuth hook
- Add frontend/src/lib/api.ts with chat, getKBStats, listDocuments, etc.
- Add frontend/src/lib/filePicker.ts with path utilities
- Update .gitignore to not ignore frontend/src/lib/
These files were imported but never committed, preventing fresh
installations from building the frontend.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add OS and package manager detection (apt, dnf, yum, pacman)
- Skip installation if Ollama/Redis already installed
- Use direct daemon execution instead of sudo for service start
- Update help messages with Linux package manager instructions
- Update README to reflect Linux support
Tested on Ubuntu with apt and systemctl.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Removed deployment/mcp-only/* because it conflicts with our export-based
architecture for ServiceBot integration.
Why removed:
- MCP-only requires Claude OS MCP server running in production
- Export approach is simpler: SQLite file → ServiceBot (standalone)
- No runtime dependency on Claude OS
- Better aligns with "ServiceBot is standalone" design goal
What we're keeping (export approach):
- app/core/knowledge_exporter.py
- templates/commands/claude-os-export.md
- docs/EXPORT_FORMAT_SPEC.md
- docs/CLAUDE_OS_FAMILY.md
- docs/PISTN_API_INTEGRATION_PLAN.md
- docs/VECTOR_SEARCH_OPTIMIZATION.md
ServiceBot integration is export-based:
Claude OS → Export SQLite → ServiceBot reads directly (no API calls)
This commit adds a complete deployment solution for running Claude OS's
MCP (Model Context Protocol) server as a standalone service, separate
from the full coding environment. This allows other applications to
access the knowledge bases without requiring the CLI or coding tools.
Features:
- Docker-based deployment with Ollama integration
- Automated setup script with model pulling
- Read-only database mounting by default
- CORS and authentication configuration
- Complete API documentation and examples
- Python and JavaScript client examples
Also includes alternative Cloudflare Workers implementation:
- TypeScript starter template
- D1 and Vectorize integration examples
- Migration scripts and documentation
- Deployment comparison guide
Files added:
- deployment/mcp-only/Dockerfile
- deployment/mcp-only/docker-compose.yml
- deployment/mcp-only/requirements.txt
- deployment/mcp-only/setup.sh
- deployment/mcp-only/.env.example
- deployment/mcp-only/.dockerignore
- deployment/mcp-only/README.md
- deployment/mcp-only/DEPLOYMENT_COMPARISON.md
- deployment/mcp-only/examples/chat-integration.py
- deployment/mcp-only/examples/chat-integration.js
- deployment/mcp-only/cloudflare-workers/*
This addresses the need to expose MCP data to other applications
(knowledge base access, live chat) without deploying the full
Claude OS environment to production servers.
Consolidated duplicate architecture sections by removing the ASCII
architecture diagram section (lines 649-688) while keeping the
comprehensive Architecture Overview section with SVG diagram.
The Template System section has been promoted to its own top-level
section for better organization.
NEW FEATURE: Service Dashboard
- Real-time monitoring of all Claude OS services
- Visual status indicators (running/stopped/unknown)
- CPU and memory usage tracking
- Auto-refresh every 5 seconds (toggleable)
- Service health summary (healthy/degraded/critical)
BACKEND (mcp_server/server.py):
- Added /api/services/status endpoint
- Monitors 6 services: MCP Server, Frontend, Redis, RQ Worker, Ollama, File Watcher
- Returns real-time status, PID, CPU%, Memory%, ports
- Includes health summary (total/running/stopped)
- Added /api/services/{service_type}/control endpoint
- Placeholder for future service control
- Returns manual commands for start/stop/restart
- Implemented process monitoring utilities:
- check_process_running() - uses pgrep and ps for stats
- check_port_listening() - uses lsof/netstat/ss for port checks
FRONTEND (ServiceDashboard.tsx):
- Beautiful dashboard with animated cards
- Service grid with 6 service cards
- Summary cards: Total, Running, Stopped, Health
- Auto-refresh toggle with visual indicator
- Manual refresh button
- Status badges with color coding:
- 🟢 Green = Running
- ⚪ Gray = Stopped
- 🟡 Yellow = Unknown
- CPU/Memory usage display
- Port and PID information
- Clickable service URLs
- Help section with management commands
INTEGRATION (MainApp.tsx):
- Added "Services" tab to main navigation
- Imported ServiceDashboard component
- Updated tab state type to include 'services'
- Activity icon for services tab
FEATURES:
✅ Real-time status monitoring
✅ Auto-refresh every 5s
✅ Manual refresh button
✅ Health summary dashboard
✅ Service details (port, PID, CPU, memory)
✅ Visual status indicators
✅ Responsive grid layout
✅ Beautiful animations
USER EXPERIENCE:
- Auto-refresh can be toggled on/off
- Last updated timestamp shown
- Help text for service management
- Clean, professional UI matching Claude OS design
Files:
- mcp_server/server.py (+300 lines)
- frontend/src/components/ServiceDashboard.tsx (new file, 350 lines)
- frontend/src/pages/MainApp.tsx (+20 lines)
Fixed: "You are the greates AI coding assitant that there ever way"
To: "You are the greatest AI coding assistant that there ever was"
Corrected:
- greates → greatest
- assitant → assistant
- way → was
File: CLAUDE.md
FIXES:
- Removed hardcoded user path '/Users/iamanmp/Projects'
- Now defaults to empty string
- User selects path via DirectoryPicker
- Works for all users, not just one specific username
- Removed debug console.log statements
- MainApp.tsx: Removed Project MCPs response log
- DirectoryPicker.tsx: Removed browsing and response logs
- Production code should not contain debug logs
IMPROVED:
- Better cross-platform compatibility
- Cleaner console output
- Professional production code
Files: frontend/src/pages/MainApp.tsx, frontend/src/components/DirectoryPicker.tsx
CRITICAL FIXES:
- Fixed SQL injection vulnerability in document deletion endpoint
- Changed PostgreSQL-style (%s) to SQLite-style (?) placeholders
- Updated JSON operator from metadata->>'filename' to json_extract()
- Affected lines: server.py:666, 679
- Fixed CORS security risk (allow_origins=["*"])
- Restricted to configurable whitelist via ALLOWED_ORIGINS env var
- Default: localhost:5173,8051 for development
- Production: Set to specific domains only
- Added rate limiting to prevent DoS attacks
- Implemented slowapi for per-IP rate limiting
- Chat endpoint: 20 requests/minute per IP
- Prevents resource exhaustion
Security impact: CRITICAL → SECURE
Files: mcp_server/server.py, .env.example
This commit fixes several critical issues found during comprehensive review:
## CRITICAL FIX: Template Consolidation ⚠️
- Moved 6 commands from ~/.claude/commands/ to templates/commands/
- Moved 3 skills from ~/.claude/skills/ to templates/skills/
- Team sharing was BROKEN without this (symlinks pointed to empty dirs)
- Updated README with prominent consolidation step warning
- Commands: list, remember, save, search, session, triggers
- Skills: initialize-project, remember-this, memory
## HIGH PRIORITY FIXES:
- ✅ Completed selective semantic indexing (removed TODO at line 878)
- ✅ Fixed PostgreSQL references in health check (system uses SQLite)
- ✅ Created comprehensive API documentation (docs/API_REFERENCE.md)
- ✅ Added Depends import to fix authentication endpoints
## DOCUMENTATION:
- Added complete API_REFERENCE.md (60+ endpoints documented)
- Created HYBRID_INDEXING_INTEGRATION.md (5 KB architecture)
- Updated README with API docs link + consolidation warning
- Documented all hybrid indexing endpoints with examples
## IMPROVEMENTS:
- Selective semantic indexing now actually ingests files (was placeholder)
- Health check now correctly queries SQLite instead of PostgreSQL
- All authentication endpoints now functional
- Structural indexing stores as pure JSON (no embeddings)
Impact: Team sharing now works, all features documented, critical bugs fixed.
Tested: Pistn indexing (3,117 files in 3 seconds) ✅🚀 Generated with Claude Code
Co-Authored-By: Claude <noreply@anthropic.com>