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>
- Fix bug where networkx import failure caused NameError
- Add stub nx class for type hints when networkx unavailable
- Document comprehensive testing status and dependency issues
- Python 3.14 too new (no tree-sitter-languages wheels)
- Python 3.13 requires build from source (Cython needed)
- Recommend Python 3.11 for immediate testing
Testing results:
✅ Module architecture verified
✅ Mock data test passes
✅ NetworkX integration works
⏸️ Awaiting tree-sitter-languages installation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Implemented optional authentication to keep strangers out of the
Claude OS frontend when deployed to production servers.
Backend (FastAPI):
- mcp_server/auth.py: JWT-based authentication
* Bcrypt password hashing
* Environment-based user credentials (no database needed)
* 7-day token expiration
* Optional - disabled by default
- mcp_server/server.py: Auth endpoints
* POST /api/auth/login - Returns JWT token
* GET /api/auth/me - Get current user
* GET /api/auth/status - Check if auth enabled
- requirements.txt: Added dependencies
* passlib[bcrypt] for password hashing
* python-jose[cryptography] for JWT
* python-multipart for form data
Frontend (React):
- frontend/src/lib/auth.tsx: Auth context and hooks
* Manages authentication state
* Automatic token validation
* localStorage for token persistence
- frontend/src/pages/Login.tsx: Beautiful login page
* Gradient design matching Claude OS branding
* Clear error messages
* Loading states
- frontend/src/components/ProtectedRoute.tsx: Route protection
* Automatically redirects to login if not authenticated
* Shows loading state during auth check
* Bypasses auth if disabled
- frontend/src/App.tsx: Integrated auth
* Wrapped app in AuthProvider
* Protected routes for Welcome and MainApp
* Login route for authentication
Documentation:
- AUTH_SETUP.md: Complete authentication guide
* Quick start instructions
* Password hash generation
* Production deployment steps
* Troubleshooting guide
- .env.example: Added auth configuration
* CLAUDE_OS_EMAIL (login email)
* CLAUDE_OS_PASSWORD (dev - plain text)
* CLAUDE_OS_PASSWORD_HASH (production - bcrypt hash)
* CLAUDE_OS_SECRET_KEY (JWT secret)
- docs/PRODUCTION_DEPLOYMENT.md: Added Step 5
* Authentication setup for production
* Hash and secret generation commands
* Testing instructions
Features:
✅ Optional authentication (disabled by default)
✅ Single user via environment variables
✅ Secure bcrypt hashing
✅ JWT tokens with 7-day expiration
✅ Beautiful login UI
✅ No database required for user management
Usage:
1. Set CLAUDE_OS_EMAIL and CLAUDE_OS_PASSWORD in .env
2. Restart Claude OS
3. Visit /login to authenticate
4. Token valid for 7 days
To disable auth: Remove CLAUDE_OS_EMAIL from .env
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Documented the brilliant discovery: copy local SQLite database
to production server to transfer ALL accumulated knowledge instantly!
Why this is game-changing:
- All of Claude's memories about bugs, solutions, patterns
- All indexed code and documentation
- Every architectural decision made locally
- Months of accumulated knowledge → instant production
- No re-indexing needed (saves hours!)
Updated:
- docs/PRODUCTION_DEPLOYMENT.md:
* Added Step 3: Copy Local SQLite Database to Server
* Complete instructions with verification steps
* Explains benefits of knowledge transfer
* Fixed step numbering (4, 5, 6)
- docs/QUICK_REFERENCE.md:
* Added "Copy Local Database to Production" section
* Quick reference for database transfer
* Labeled as "SECRET SAUCE!" for emphasis
Deployment flow:
1. Deploy Claude OS to server
2. Copy local database with scp
3. Replace server database
4. Restart services
5. Production Claude now has ALL local knowledge!
This transforms deployment from "start from scratch" to
"transfer institutional knowledge instantly"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Created comprehensive indexing script to index entire codebases
into Claude OS knowledge bases with a single command.
New Files:
- scripts/index-codebase.sh: Automated codebase indexing script
* Intelligently detects project structure (Rails, Node.js, etc.)
* Indexes docs, source code, models, services, controllers, config
* Provides progress indicators and statistics
* Handles errors gracefully
* Can be run locally or on production servers
- scripts/README.md: Complete documentation for helper scripts
* Usage examples for local and production
* Integration with Capistrano, Docker, GitHub Actions
* Cron job setup for automatic re-indexing
* Troubleshooting guide
Updated:
- docs/PRODUCTION_DEPLOYMENT.md:
* Added section on keeping code index updated
* Capistrano hook example for auto-indexing on deploy
* Cron job setup for scheduled re-indexing
* Performance impact notes
Benefits:
- One command indexes entire codebase across all knowledge bases
- Complete context for Claude (semantic search across all code)
- Pattern recognition from your coding style
- Better code suggestions matching your architecture
- Re-index on every deployment to stay current
Usage:
./scripts/index-codebase.sh Pistn /path/to/project http://localhost:8051🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
Added comprehensive documentation for new capabilities:
- Session Management with automatic context loading
- Team Collaboration & Sharing with template system
- Agent-OS Integration (optional, by Builder Methods)
- Smart Commands & Triggers for automatic memory capture
- Updated comparison tables showing competitive advantages
- Production deployment guides and quick reference
These updates showcase Claude OS as a complete AI development
operating system with persistent memory, team sharing, and
optional spec-driven development workflows.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>