# Cowork Local Cowork Local is the internal AI cowork desktop platform. It provides a local-first desktop runtime, multi-turn conversational agents, workspace isolation, task scheduling, MCP connectors, security guardrails, and model routing. --- ## 🏛️ 4-Tier Clean Architecture The codebase strictly adheres to **Clean Architecture** with unidirectional inward dependencies: ```text presentation/ (PySide6 UI, Shell, NavRail, Chat, Scheduling, Settings, Dashboard) │ ▼ application/ (Pure Python Orchestration: Conversations, Scheduling, Workspaces, Monitoring, Routing) │ ▼ domain/ (Pure Python: Entities, Immutable Execution Requests, Agent Events, Descriptors) ▲ │ infrastructure/ (Adapters, LLM Providers, Atomic Persistence, Keyring SecretStore, MCP) ``` - **Domain & Application Layers**: 100% Pure Python (zero Qt/UI imports). - **Single Responsibility**: Every production module is strictly `<= 400 LOC`. - **Security & Durability**: API keys stored in OS Keyring; atomic JSON disk persistence. --- ## 🚀 Quick Start ### 1. Run the Desktop Application From the repository root: ```bash python -m cowork_local ``` ### 2. Run Automated Tests ```bash python -m pip install -r requirements-test.txt pytest -q ``` --- ## 🛡️ CASAN Quality Gate & Verification Before submitting any Pull Request, run the unified CASAN Quality Gate: ```bash # Run all 4 quality gates (Clean Arch, Secrets, LOC, and Pytest Suite) python scripts/run_quality_gate.py # Run static and architectural guards only (fast check) python scripts/run_quality_gate.py --skip-tests ``` Individual guard scripts: - **Clean Architecture Import Guard**: `python scripts/check_imports.py` - **Secrets & Plaintext Audit**: `python scripts/audit_security.py` - **Single Responsibility LOC Guard**: `python scripts/check_loc.py --max-lines 400` - **Release E2E Smoke Test**: `pytest tests/e2e/test_smoke.py -v` --- ## 🤝 Contributing & Recipes - **Quick Start Guide**: See [START_CONTRIBUTING.md](START_CONTRIBUTING.md). - **Contributor Recipes**: See [docs/governance/contributor-recipes.md](docs/governance/contributor-recipes.md) for step-by-step recipes to: 1. Add a new AI Model Provider. 2. Add a new Built-in Tool / MCP Server. 3. Add a new Screen / Tab / Widget. - **Security Policy**: See [SECURITY.md](SECURITY.md).