Skip to content

Repository files navigation

Yi - Focus Productivity Tool

Version Platform License

Yi App Icon

Yi is a desktop productivity application designed for long-term focus tracking. Manage projects with dedicated timers and record your daily achievements in a timeline format.

Yi Screenshot


✨ Features

🕐 Timer Tracking

  • Multiple projects with independent timers
  • One-tap start/stop from project list
  • Session history automatically logged
  • Minimum tracking unit: 1 minute
  • Video player-style play/stop buttons

📅 Daily Records

  • Calendar-based view for browsing achievements
  • Write and edit achievements for any past date
  • Full-text search across all records
  • Auto-save when leaving day view or exiting app

📊 Statistics

  • View focus time by day, week, month, or year
  • Project-wise time distribution
  • Period-over-period comparison
  • Intuitive calendar navigation

📁 Project Management

  • Create, archive, and delete projects
  • Sort projects by creation time, last activity, or name
  • Archive management with restore capability
  • One-click project switching with automatic timer transfer
  • Drag-and-drop project reordering

🔒 Privacy & Security

  • Browser restrictions to prevent accidental navigation
  • No browser devtools access
  • Zoom controls disabled
  • Clean desktop experience

⚙️ Settings

  • Dark/Light theme toggle
  • Auto-start on system boot
  • Export all data as JSON
  • Import data from backup
  • Automatic backup on first launch (keeps last 7 days)

🚀 Getting Started

🎮 Keyboard Shortcuts

Shortcut Action
Ctrl+1 Home (project list)
Ctrl+2 Results (daily records)
Ctrl+3 Archive
Ctrl+4 Statistics
Ctrl+5 Settings
Ctrl+N New project (home page)
Ctrl+Shift+Y Show/hide window (configurable)

Prerequisites

Requirement Version
Node.js 22.22.2+ (24 recommended)
Rust 1.70+
npm 9+

Installation

# Clone the repository
git clone https://github.com/nicheng251/Yi.git
cd Yi

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

Building for Production

# Build release binaries
npm run tauri build

# Built artifacts are located at:
# - Linux:    src-tauri/target/release/bundle/
# - macOS:    src-tauri/target/release/bundle/
# - Windows:  src-tauri/target/release/bundle/

Running the Built Application

# Linux
./src-tauri/target/release/yi

# Or install via package manager
sudo dpkg -i src-tauri/target/release/bundle/deb/Yi_0.2.4_amd64.deb  # Ubuntu/Debian
sudo rpm -i src-tauri/target/release/bundle/rpm/Yi-0.2.4-1.x86_64.rpm # Fedora/RHEL

🏗️ Project Structure

Yi/
├── src/                          # React frontend (TypeScript)
│   ├── components/               # Reusable UI components
│   │   ├── IconButton.tsx        #   Play/Stop buttons
│   │   ├── SortableItemBase.tsx #   Drag-drop base component
│   │   ├── Toggle.tsx           #   Toggle switch component
│   │   └── ...
│   ├── pages/                    # Page components
│   │   ├── Home.tsx             #   Project list + timer
│   │   ├── Results.tsx          #   Daily records + calendar
│   │   ├── Archive.tsx          #   Archived projects
│   │   ├── Statistics.tsx       #   Focus statistics
│   │   └── Settings.tsx         #   App settings
│   ├── hooks/                    # Custom React hooks
│   │   ├── useBrowserRestrictions.ts
│   │   ├── useDragReorder.ts
│   │   └── ...
│   ├── store/                    # Zustand state management
│   └── styles/                   # CSS files
├── src-tauri/                    # Rust backend
│   ├── src/
│   │   ├── main.rs              #   Entry point + Tauri setup
│   │   ├── commands.rs         #   IPC command handlers
│   │   ├── tray.rs             #   System tray
│   │   └── db/                 #   SQLite database access layer
│   ├── icons/                    # App icons
│   ├── capabilities/             # Tauri permission config
│   ├── Cargo.toml
│   └── tauri.conf.json
└── package.json

📁 Data Storage

All user data is stored locally. No cloud sync required.

Data Type Location (Linux) Location (Windows)
Database ~/.local/share/yi/yi.db %APPDATA%/yi/yi.db
Attachments ~/.local/share/yi/attachments/ %APPDATA%/yi/attachments/
Logs ~/.local/share/yi/logs/ %APPDATA%/yi/logs/
Backups ~/.local/share/yi/backups/ %APPDATA%/yi/backups/

🛠️ Tech Stack

Layer Technology
Framework Tauri 2.x
Frontend React 18 + TypeScript + Vite
Database SQLite (bundled via rusqlite)
State Zustand
Styling CSS Variables (no external UI library)

📝 License

This project is MIT licensed.


Made with ❤️ using Tauri

About

Desktop productivity application designed for long-term focus tracking

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages