Yesman-Claude is a comprehensive workspace management server with modern Tauri desktop application. It provides session management and monitoring through a unified SvelteKit interface.
- Session Management: Create and manage tmux sessions using YAML templates
- FastAPI Backend Server: RESTful API for session and workspace management
- SvelteKit Web Interface: Modern web interface for monitoring and control
- Tauri Desktop Application: Native desktop app with system integration
- Real-time Monitoring: Live session activity tracking and health monitoring
- Python FastAPI Server: High-performance async backend
- SvelteKit Frontend: Shared codebase for both web and desktop interfaces
- Tauri Native Wrapper: Desktop application with native system integration
- Configuration Management: Pydantic-based configuration with environment support
- Error Handling: Centralized error handling with recovery hints
- Type Safety: Full TypeScript-style type hints and validation
Modern web dashboard served via FastAPI backend.
# Start API server
make run-api-server
# Start web development server
make run-web-dashboard
# Access at: http://localhost:5173
Native desktop app with the same SvelteKit codebase as web interface.
# Start Tauri development mode
make run-tauri-dev
# Full development environment (API + Web)
make dev-dashboard
# Development installation (recommended)
make install-dev
# or directly:
pip install -e . --config-settings editable_mode=compat
# Install dashboard dependencies
make install-dashboard-deps
# Start API server
make run-api-server
# API available at: http://localhost:10501
# Start web dashboard
make run-web-dashboard
# Access at: http://localhost:5173
# Start desktop app
make run-tauri-dev
# Check server status
make dashboard-status
# Stop all servers
make stop-servers
Feature | Web | Tauri |
---|---|---|
Performance | βββ | ββββ |
Resource Usage | βββ | ββββ |
Cross-platform | βββββ | ββββ |
Remote Access | βββββ | β |
User Experience | ββββ | βββββ |
Customization | βββββ | ββββ |
System Integration | βββ | βββββ |
- Web: Remote monitoring, team collaboration, browser-based workflows, development
- Tauri: Daily use, best user experience, desktop integration, offline capabilities
κΈλ‘λ² μ€μ νμΌμ λ€μ κ²½λ‘μ μμΉν©λλ€:
$HOME/.scripton/yesman/yesman.yaml
$HOME/.scripton/yesman/sessions/ # Individual session files
νμΌ κ΅¬μ‘° examples/ μ°Έκ³
Yesman-Claudeλ μ¬μ¬μ© κ°λ₯ν tmux μΈμ ν νλ¦Ώμ μ§μν©λλ€. ν νλ¦Ώμ μ¬μ©νλ©΄ μ¬λ¬ νλ‘μ νΈμμ μΌκ΄λ κ°λ° νκ²½μ μ½κ² ꡬμ±ν μ μμ΅λλ€.
ν
νλ¦Ώ νμΌμ ~/.scripton/yesman/templates/
λλ ν°λ¦¬μ YAML νμμΌλ‘ μ μ₯λ©λλ€.
session_name: "{{ session_name }}"
workspace_config:
base_dir: "{{ base_dir }}"
workspace_definitions:
main:
rel_dir: "."
allowed_paths: ["."]
description: "Main project workspace"
windows:
- window_name: main
layout: even-horizontal
panes:
- shell_command: "npm run dev"
"μ€λ§νΈ ν νλ¦Ώ"μ μ‘°κ±΄λΆ λͺ λ Ή μ€νμ μ§μν©λλ€:
panes:
- shell_command: |
# μμ‘΄μ±μ΄ μκ±°λ μ€λλ κ²½μ°μλ§ μ€μΉ
if [ ! -d "node_modules" ] || [ "package.json" -nt "node_modules/.package-lock.json" ]; then
echo "Dependencies missing or outdated, installing..."
pnpm install
else
echo "Dependencies up to date, skipping install"
fi
pnpm dev
κ°λ³ μΈμ νμΌμμ ν νλ¦Ώμ μ°Έμ‘°νκ³ νμν κ°μ μ€λ²λΌμ΄λν μ μμ΅λλ€:
# ~/.scripton/yesman/sessions/my_project.yaml
session_name: "my_project"
template_name: "django"
override:
session_name: my_django_app
workspace_config:
base_dir: "~/projects/django-app"
μμΈν λ΄μ©μ ν νλ¦Ώ λ¬Έμλ₯Ό μ°Έμ‘°νμΈμ.
Yesman Claudeλ νλμ μ΄κ³ μ μ§λ³΄μ κ°λ₯ν μν€ν μ²λ‘ ꡬμΆλμμ΅λλ€:
- FastAPI Backend: κ³ μ±λ₯ λΉλκΈ° Python λ°±μλ μλ²
- SvelteKit Frontend: λ°μν μΉ μΈν°νμ΄μ€ (Web + Tauri 곡μ )
- Tauri Desktop: λ€μ΄ν°λΈ λ°μ€ν¬ν± μ± λνΌ
- Configuration Management: Pydantic μ€ν€λ§ κΈ°λ°μ κ²μ¦ κ°λ₯ν μ€μ μμ€ν
- Error Handling: μ€μνλ μλ¬ μ²λ¦¬μ μ¬μ©μ μΉνμ μΈ λ³΅κ΅¬ ννΈ
# κ°λ° νκ²½ μ€μ
git clone <repository-url>
cd yesman-claude
# API server μμ
make run-api-server
# μΉ κ°λ° μλ² μμ (λ€λ₯Έ ν°λ―Έλμμ)
make run-web-dashboard
# λλ Tauri κ°λ° λͺ¨λ
make run-tauri-dev
# μλ² μν νμΈ
make dashboard-status
# λͺ¨λ μλ² μ€μ§
make stop-servers
# API μλ² λλ²κ·Έ λͺ¨λ
make debug-api
# μ 체 κ°λ° νκ²½ (API + Web)
make dev-dashboard
# λΉ λ₯Έ νμ§ κ²μ¬
make quick
# μ 체 νμ§ κ²μ¬
make full
- π Developer Guide - κ°λ°μλ₯Ό μν μμΈ κ°μ΄λ
- ποΈ Architecture Decision Records - μν€ν μ² κ²°μ κΈ°λ‘
- π§ͺ Testing Guide - ν μ€νΈ μμ± λ° μ€ν κ°μ΄λ
- βοΈ Configuration - μ€μ κ΄λ¦¬ κ°μ΄λ
- Fork the repository
- Create a feature branch:
git checkout -b feature/my-feature
- Make your changes following the Developer Guide
- Add tests for new functionality
- Ensure all tests pass:
make test
- Format code:
make format
- Commit changes:
git commit -m 'feat: add my feature'
- Push to the branch:
git push origin feature/my-feature
- Create a Pull Request
yesman-claude/
βββ api/ # FastAPI backend server
βββ libs/core/ # Core architecture components
β βββ config_*.py # Configuration management
β βββ session_manager.py # Session management
βββ tauri-dashboard/ # SvelteKit frontend (Web + Tauri)
β βββ src/routes/ # SvelteKit pages
β βββ src/lib/ # Reusable components
β βββ src-tauri/ # Rust backend for desktop
βββ tests/ # Test suites
β βββ unit/ # Unit tests
β βββ integration/ # Integration tests
βββ docs/ # Documentation
βββ examples/ # Configuration examples
MIT License - see the LICENSE file for details.