Skip to content

ScriptonBasestar/yesman-agent

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Yesman Claude

Yesman-Claude is a comprehensive workspace management server with modern Tauri desktop application. It provides session management and monitoring through a unified SvelteKit interface.

πŸš€ Key Features

Core Functionality

  • 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

Architecture

  • 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

πŸ“Š Interface Options

🌐 Web Interface (SvelteKit)

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

πŸ–±οΈ Desktop Application (Tauri + SvelteKit)

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

πŸ”§ Quick Start

Installation

# Development installation (recommended)
make install-dev
# or directly:
pip install -e . --config-settings editable_mode=compat

# Install dashboard dependencies
make install-dashboard-deps

Basic Commands

# 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

πŸ“‹ Interface Comparison

Feature Web Tauri
Performance ⭐⭐⭐ ⭐⭐⭐⭐
Resource Usage ⭐⭐⭐ ⭐⭐⭐⭐
Cross-platform ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐
Remote Access ⭐⭐⭐⭐⭐ ⭐
User Experience ⭐⭐⭐⭐ ⭐⭐⭐⭐⭐
Customization ⭐⭐⭐⭐⭐ ⭐⭐⭐⭐
System Integration ⭐⭐⭐ ⭐⭐⭐⭐⭐

When to Use Each Interface

  • 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"

Smart Templates

"슀마트 ν…œν”Œλ¦Ώ"은 쑰건뢀 λͺ…λ Ή 싀행을 μ§€μ›ν•©λ‹ˆλ‹€:

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"

μžμ„Έν•œ λ‚΄μš©μ€ ν…œν”Œλ¦Ώ λ¬Έμ„œλ₯Ό μ°Έμ‘°ν•˜μ„Έμš”.

πŸ—οΈ Development

Architecture Overview

Yesman ClaudeλŠ” ν˜„λŒ€μ μ΄κ³  μœ μ§€λ³΄μˆ˜ κ°€λŠ₯ν•œ μ•„ν‚€ν…μ²˜λ‘œ κ΅¬μΆ•λ˜μ—ˆμŠ΅λ‹ˆλ‹€:

  • FastAPI Backend: κ³ μ„±λŠ₯ 비동기 Python λ°±μ—”λ“œ μ„œλ²„
  • SvelteKit Frontend: λ°˜μ‘ν˜• μ›Ή μΈν„°νŽ˜μ΄μŠ€ (Web + Tauri 곡유)
  • Tauri Desktop: λ„€μ΄ν‹°λΈŒ λ°μŠ€ν¬ν†± μ•± 래퍼
  • Configuration Management: Pydantic μŠ€ν‚€λ§ˆ 기반의 검증 κ°€λŠ₯ν•œ μ„€μ • μ‹œμŠ€ν…œ
  • Error Handling: μ€‘μ•™ν™”λœ μ—λŸ¬ μ²˜λ¦¬μ™€ μ‚¬μš©μž μΉœν™”μ μΈ 볡ꡬ 힌트

Quick Start for Developers

# 개발 ν™˜κ²½ μ„€μ •
git clone <repository-url>
cd yesman-claude

# API server μ‹œμž‘
make run-api-server

# μ›Ή 개발 μ„œλ²„ μ‹œμž‘ (λ‹€λ₯Έ ν„°λ―Έλ„μ—μ„œ)
make run-web-dashboard

# λ˜λŠ” Tauri 개발 λͺ¨λ“œ
make run-tauri-dev

Development Commands

# μ„œλ²„ μƒνƒœ 확인
make dashboard-status

# λͺ¨λ“  μ„œλ²„ 쀑지
make stop-servers

# API μ„œλ²„ 디버그 λͺ¨λ“œ
make debug-api

# 전체 개발 ν™˜κ²½ (API + Web)
make dev-dashboard

# λΉ λ₯Έ ν’ˆμ§ˆ 검사
make quick

# 전체 ν’ˆμ§ˆ 검사
make full

Documentation

  • πŸ“š Developer Guide - 개발자λ₯Ό μœ„ν•œ 상세 κ°€μ΄λ“œ
  • πŸ—οΈ Architecture Decision Records - μ•„ν‚€ν…μ²˜ κ²°μ • 기둝
  • πŸ§ͺ Testing Guide - ν…ŒμŠ€νŠΈ μž‘μ„± 및 μ‹€ν–‰ κ°€μ΄λ“œ
  • βš™οΈ Configuration - μ„€μ • 관리 κ°€μ΄λ“œ

Contributing

  1. Fork the repository
  2. Create a feature branch: git checkout -b feature/my-feature
  3. Make your changes following the Developer Guide
  4. Add tests for new functionality
  5. Ensure all tests pass: make test
  6. Format code: make format
  7. Commit changes: git commit -m 'feat: add my feature'
  8. Push to the branch: git push origin feature/my-feature
  9. Create a Pull Request

Project Structure

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

πŸ“„ License

MIT License - see the LICENSE file for details.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •