An AI-powered workspace companion for personal developers.
  • Vue 49%
  • Rust 25.1%
  • TypeScript 24.2%
  • CSS 1.3%
  • JavaScript 0.2%
  • Other 0.2%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-10-05 23:18:45 -07:00
.claude feat: implement structured home.md management and Agent Evolution Phase 1-5 2026-05-03 19:26:00 -07:00
.github/workflows Fix latest-release publish: recurse bundle dirs, tar .app, pass repo to gh 2026-08-12 22:48:54 -07:00
public Redesign main window: companion console layout, drawers, tabbed settings 2026-06-01 00:18:58 -07:00
src feat: refine desktop pet widget 2026-10-05 23:18:45 -07:00
src-tauri feat: add first-run onboarding 2026-10-05 23:18:45 -07:00
.gitignore Redesign main window: companion console layout, drawers, tabbed settings 2026-06-01 00:18:58 -07:00
.prettierrc M1–M3: Tauri+Vue scaffold, 3-panel UI, Catppuccin theme, file system & markdown 2026-04-28 19:52:59 -07:00
eslint.config.js M1–M3: Tauri+Vue scaffold, 3-panel UI, Catppuccin theme, file system & markdown 2026-04-28 19:52:59 -07:00
index.html Redesign main window: companion console layout, drawers, tabbed settings 2026-06-01 00:18:58 -07:00
LICENSE Add CI, AGPL-3.0 license, and beautify README 2026-06-13 20:41:32 -07:00
package-lock.json Redesign main window: companion console layout, drawers, tabbed settings 2026-06-01 00:18:58 -07:00
package.json Redesign main window: companion console layout, drawers, tabbed settings 2026-06-01 00:18:58 -07:00
README.md Add CI, AGPL-3.0 license, and beautify README 2026-06-13 20:41:32 -07:00
tsconfig.json Redesign main window: companion console layout, drawers, tabbed settings 2026-06-01 00:18:58 -07:00
tsconfig.node.json Redesign main window: companion console layout, drawers, tabbed settings 2026-06-01 00:18:58 -07:00
vite.config.ts refactor: single-window widget — main window resizes to compact view instead of separate window 2026-04-29 20:42:10 -07:00

Clock Lock

Clock Lock

An AI-powered workspace companion for personal developers.
Project knowledge base, AI agent chat, and emotional-support supervision —
in a minimal, non-IDE desktop interface.

License: AGPL-3.0 Tauri v2 Vue 3 Rust


What is Clock Lock?

Clock Lock is a desktop companion app that helps solo developers stay organized, focused, and motivated. It combines three core tools into one lightweight window:

  • 📋 Project Knowledge Base — A structured home.md file with dedicated sections for Overview, Todos, and Notes. Edit with a custom section-based Markdown editor.
  • 🤖 AI Agent Chat — Talk through problems with an AI that has native tool calling, context awareness, and the ability to directly update your project knowledge base.
  • 🐱 Supervision & Companionship — Idle detection with friendly check-ins, a reactive Tamagotchi-style pet, and OS-native notifications to keep you on track.

All wrapped in a transparent, frameless Tauri window that stays out of your way — and shrinks to a compact 260×140 widget for low-profile monitoring.


Features

Structured Project Knowledge Base (home.md)

  • Three-Pillar Architecture — home.md is managed as a structured document with three dedicated sections:
    • Overview — A high-level project description and tech stack summary.
    • Todos — A checklist of user-owned micro-tasks.
    • Notes — A running log of observations, research, and decisions.
  • Section-Based Editor — The center panel features a specialized editor for home.md with dedicated UI for each section. Overview and Notes support rich Markdown editing; Todos feature a native interactive checklist with drag-to-reorder (planned) and one-click completion.
  • Live Sync & Locking — Changes are synchronized via a file-system watcher. The editor detects external changes and merges them safely, ensuring the agent and user stay in sync.

Evolved AI Agent Intelligence

  • Native Tool Calling — High-reliability interaction using OpenAI/Anthropic-compatible function calling. No more fragile regex parsing.
  • Internal Monologue — The agent's reasoning is rendered as a collapsible "thought process" block, providing transparency into its plan before it executes tools.
  • Surgical Updates — The agent uses dedicated tools (update_overview, add_todo, append_notes) to modify the project knowledge base without overwriting your manual edits.
  • Context Awareness — Automatically pulls relevant context (git status, file structure, recent activity) into the system prompt.
  • Build Failure Awareness — Proactively offers help and diagnostic steps when a suggested shell command returns an error.
  • Slash Commands — /status, /remind, /review, /scan, /summarize, /focus, and /help. /scan performs a deep dive into the project to initialize the Overview and first Todos.

Memory & Workspace Locking

  • Conversation Persistence — SQLite-backed session history with full-text search (FTS5).
  • Workspace-Locked Shell — A sandboxed bash/powershell environment locked to the project root with safety checks for dangerous commands.
  • Cold Start Recovery — Remembers your last active file and task state, providing a personalized welcome-back message after inactivity.

Supervision & Companionship

  • Idle Detection — If no activity for a configurable threshold, the companion sends a friendly check-in. Falls back to a local message if no AI API is configured.
  • Tamagotchi Pet — A 5-state kaomoji face (idle/thinking/happy/sleepy/excited) with per-state CSS animations, driven by filesystem activity and agent responses.
  • OS Notifications — Critical check-ins and task reminders delivered via system-native notifications.

Widget Mode

  • Compact Overlay — Shrinks to a 260×140 always-on-top window for low-profile monitoring.
  • Rich Rendering — Agent messages are rendered with Markdown support even in the compact view.
  • Task Tracking — Displays the top pending task from your home.md directly in the widget.

Tech Stack

Layer Stack
Desktop shell Tauri v2
Frontend Vue 3 (Composition API), Pinia, TypeScript
Backend Rust — git2, notify, sqlx + SQLite, reqwest
Markdown marked (rendering), shiki (syntax highlighting)

Architecture

┌─────────────────────────────────────────────────────────┐
│                    Frontend (Vue 3)                     │
│  AppLayout (3-panel resizable)                          │
│    ├── FileTree (Git-aware browser)                    │
│    ├── WorkspaceHome → MarkdownEditor (Section-based)   │
│    └── AgentChat (Streaming, Thought Blocks, Tools)     │
│                                                         │
│  WidgetWindow (Compact overlay with Pet & Quick Input)  │
│                                                         │
│  Pinia: workspace (HomeData) · agent (Session) · sv     │
├─────────────────────────────────────────────────────────┤
│                  Backend (Rust / Tauri)                 │
│  commands/fs.rs     — Structured home.md (read/save)    │
│  commands/agent.rs  — LLM streaming & tool execution    │
│  commands/shell.rs  — Workspace-locked sandboxed shell   │
│  commands/memory.rs — SQLite CRUD + FTS5 search         │
│  watcher.rs         — FS watcher (emits home-md-changed)│
│  supervision.rs     — Idle detection background task    │
└─────────────────────────────────────────────────────────┘

Getting Started

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

# Type-check & lint
npx vue-tsc --noEmit
cd src-tauri && cargo clippy

Prerequisites

  • Node.js ≥ 18
  • Rust (latest stable; install via rustup)
  • System dependencies (Linux):
    sudo apt install libwebkit2gtk-4.1-dev libappindicator3-dev \
      librsvg2-dev libgtk-3-dev libjavascriptcoregtk-4.1-dev \
      libsoup-3.0-dev
    

License

GNU Affero General Public License v3.0 © 2025 Clock Lock contributors.

See LICENSE for the full text.