Content
# DayRecord
[](https://github.com/mikaku9944/dayrecord/actions/workflows/ci.yml)
[](https://github.com/mikaku9944/dayrecord/releases)
[](https://www.npmjs.com/package/@dayrecord/mcp)
[](LICENSE)
**Observes your activities without capturing a single screenshot.**
> **Non-technical users**: Send the repository URL to Codex / Claude Code / Cursor, and let AI execute the one-click installation command in [AGENTS.md](AGENTS.md) (Windows will install CLI + GUI + MCP configuration + auto-start).
A cross-platform personal work memory assistant: reads visible text on the interface (no screenshots), keyboard input, and window timeline, generates work review, and provides user context for Agents like Hermes, nanobot, and OpenClaw through **CLI / MCP**.
## Key Features
| Feature | Description |
|------|------|
| **Context reading without screenshots** | Windows UIA / macOS AX / Linux AT-SPI (optional) |
| **On-demand AI** | Only calls DeepSeek when generating review or extracting facts |
| **Agent integration** | `dayrecord mcp` · `dayrecord context` (debugging) |
| **Hexagonal architecture** | core / adapters / runtime / cli / app |
## Architecture
| Crate | Responsibility |
|-------|------|
| `dayrecord-core` | Domain logic, ContextBundle, Markdown rendering, paths |
| `dayrecord-adapters` | SQLite, DeepSeek, platform collection, keyring |
| `dayrecord-runtime` | Orchestrator scheduling |
| `dayrecord-cli` | CLI + MCP server (single binary) |
| `dayrecord-app` | Tauri 2 GUI + tray |
| `frontend/` | TypeScript UI |
## Installation
### Pre-built (recommended)
Download from [GitHub Releases](https://github.com/mikaku9944/dayrecord/releases):
| Platform | Artifact |
|------|------|
| Windows | `dayrecord-*.zip` (CLI) + `.msi` (GUI) |
| macOS (ARM) | `dayrecord-*-aarch64-apple-darwin.tar.gz` |
| Linux x64 | `dayrecord-*-x86_64-unknown-linux-gnu.tar.gz` |
See [Pre-built installation instructions](docs/install-prebuilt.md) for detailed steps.
### Build from source
**CLI:**
```bash
git clone https://github.com/mikaku9944/dayrecord.git
cd dayrecord
cargo install --path crates/dayrecord-cli
```
**Desktop GUI (Windows priority):**
```powershell
git clone https://github.com/mikaku9944/dayrecord.git
cd dayrecord
cd frontend && npm install && cd ..
scripts\run.cmd
```
Hot update development: `scripts\dev.cmd`
## Quick usage (Agent)
```bash
# JSON user profile + facts
dayrecord context --scope user --format json
# Recent 7-day review
dayrecord context --scope recent:7 --format md
# MCP (for nanobot, etc.; requires GUI or dayrecord daemon to trigger AI/control recording)
dayrecord mcp
# Debugging: print context once (use MCP when Agent is running)
dayrecord context --scope user --format json
dayrecord context --scope recent:7 --format md
```
Data directory: `dayrecord data-dir`
## MCP quick integration
Applicable to **Cursor**, Claude Desktop, Codex, nanobot, etc. Configure and reload MCP to use; **read-only tools** directly read local `dayrecord.db`; **control tools** will automatically start background `dayrecord daemon` (can be disabled with `mcp_autostart_daemon=false`) when consent is given.
### 1. Cursor one-click (recommended, published on npm)
Only Node.js 18+ is required, **no need** to clone the repository or run installation scripts. `npx` will pull [@dayrecord/mcp](https://www.npmjs.com/package/@dayrecord/mcp), and the first run will automatically download the native CLI from GitHub Release.
**Windows:**
```json
{
"mcpServers": {
"dayrecord": {
"command": "cmd",
"args": ["/c", "npx", "-y", "@dayrecord/mcp"]
}
}
}
```
**macOS / Linux:** `"command": "npx"`, `"args": ["-y", "@dayrecord/mcp"]`
See [packages/mcp/README.md](packages/mcp/README.md) for details.
### 2. Native binary installation (optional)
**Windows (`install.ps1` → `%LOCALAPPDATA%\Programs\dayrecord\dayrecord.exe`):**
```powershell
powershell -NoProfile -ExecutionPolicy Bypass -File scripts\install.ps1 -WriteConfig
```
**macOS / Linux (`~/.local/bin/dayrecord`):**
```bash
chmod +x scripts/install.sh
./scripts/install.sh --write-config
```
**Build to stable path from source (developer, `cargo install` → `...\dayrecord\bin\`):**
```powershell
powershell -File scripts\install-local.ps1 -WriteConfig
```
> `scripts\run.cmd` only starts **GUI** (`dayrecord-app`), and will not update CLI/MCP binaries. MCP is started independently by IDE according to `mcp.json`.
**`mcp.json` example (native path, no npm):**
```json
{
"mcpServers": {
"dayrecord": {
"command": "C:\\Users\\YOU\\AppData\\Local\\Programs\\dayrecord\\bin\\dayrecord.exe",
"args": ["mcp"]
}
}
}
```
(If `install.ps1` is installed in the parent directory, remove `bin\\` from the path.) Or use MCP dedicated entry:
```json
{
"mcpServers": {
"dayrecord": {
"command": "C:\\Users\\YOU\\AppData\\Local\\Programs\\dayrecord\\bin\\dayrecord-mcp.exe",
"args": []
}
}
}
```
### 3. Enable and verify
1. **Enable** `dayrecord` in MCP settings (reload after configuration).
2. Before using control tools for the first time: `dayrecord consent --accept true` (or agree to collection in GUI).
3. Normally, **11 tools** and **5 resources** (including `dayrecord://context/agent`) should be visible.
4. Verification:
```bash
dayrecord --version
dayrecord mcp --version
dayrecord doctor mcp
```
`doctor mcp` checks binary drift, `tools/list`, control `isError`, and daemon auto-start + IPC (when consent is allowed).
### Codex (`~/.codex/config.toml`)
```toml
[mcp_servers.dayrecord]
command = 'C:\\Users\\YOU\\AppData\\Local\\Programs\\dayrecord\\bin\\dayrecord.exe'
args = ["mcp"]
```
Or use npx: `command = "npx"`, `args = ["-y", "@dayrecord/mcp"]`
### 4. Tool list
| Type | Tool | Requires collection service? |
|------|------|----------------|
| Read-only | **`get_agent_context`** · `get_user_profile` · `query_user_facts` · `get_recent_summary` · `get_today_context` · `what_working_on_now` · `get_recording_status` | No (read DB; **prefer `get_agent_context`**) |
| Trigger / Control | `generate_today_summary` · `consolidate_memory` · `pause_recording` · `resume_recording` | Yes (MCP can automatically start daemon, requires `consent=true`) |
Trigger tools return `isError: true` and structured hint when `consent` is not agreed or `mcp_autostart_daemon=false`.
**Resources:** `dayrecord://context/agent` · `dayrecord://user/profile` · `dayrecord://facts/active` · `dayrecord://context/today` · `dayrecord://memory/{YYYY-MM-DD}`
API Key is configured in GUI settings (keyring); when not configured, trigger tools use Mock LLM (only suitable for development).
More details: [nanobot integration](docs/integrations/nanobot.md) · [Agent context description](docs/AGENT-CONTEXT.md) · [Pre-built installation](docs/install-prebuilt.md) · [Scoop/winget manifest](packaging/)
## Platform support
| Platform | Window | Visible text | Keyboard | Key |
|------|------|----------|------|------|
| Windows | Complete | UIA | WH_KEYBOARD_LL | keyring |
| macOS | Complete | AX (feature) | CGEventTap (feature) | keyring |
| Linux | Complete | AT-SPI (feature) | Only X11 (feature); Wayland not supported | keyring |
## Agent integration documentation
- [Hermes](docs/integrations/hermes.md)
- [nanobot](docs/integrations/nanobot.md)
- [OpenClaw / 小龙虾](docs/integrations/openclaw.md)
## Development
```bash
cargo test -p dayrecord-core -p dayrecord-adapters -p dayrecord-runtime -p dayrecord-cli --lib
cd frontend && npm test
```
## Documentation
- [Agent context description](docs/AGENT-CONTEXT.md)
- [Privacy statement](PRIVACY.md)
- [Contribution guide](CONTRIBUTING.md)
- [Pre-built installation](docs/install-prebuilt.md)
- [Packaging and distribution](docs/packaging.md)
- [macOS permissions](docs/macos-permissions.md)
- [Acceptance checklist](docs/acceptance-checklist.md)
- [Known limitations](docs/limitations.md)
## License
MIT — See [LICENSE](LICENSE)
MCP Config
Below is the configuration for this MCP Server. You can copy it directly to Cursor or other MCP clients.
mcp.json
Connection Info
You Might Also Like
everything-claude-code
Complete Claude Code configuration collection - agents, skills, hooks,...
markitdown
Python tool for converting files and office documents to Markdown.
awesome-claude-skills
A curated list of awesome Claude Skills, resources, and tools for...
antigravity-awesome-skills
The Ultimate Collection of 130+ Agentic Skills for Claude...
claude-context-mode
claude-context-mode plugin reduces MCP context bloat, saving up to 99% of tokens.
context-mode
MCP is the protocol for tool access. We're the virtualization layer for context.