https://github.com/tanitaka-tech/todome
A Trello-style Kanban app with a Claude Agent SDK assistant that knows your board, goals, and profile — task management that thinks with you.
https://github.com/tanitaka-tech/todome
claude-code dialy open-source react task-management todoapp typescript
Last synced: 10 days ago
JSON representation
A Trello-style Kanban app with a Claude Agent SDK assistant that knows your board, goals, and profile — task management that thinks with you.
- Host: GitHub
- URL: https://github.com/tanitaka-tech/todome
- Owner: tanitaka-tech
- License: mit
- Created: 2026-04-18T00:10:20.000Z (2 months ago)
- Default Branch: master
- Last Pushed: 2026-05-05T10:51:17.000Z (about 2 months ago)
- Last Synced: 2026-05-05T12:10:20.730Z (about 2 months ago)
- Topics: claude-code, dialy, open-source, react, task-management, todoapp, typescript
- Language: TypeScript
- Homepage: https://tanitaka-tech.github.io/todome/
- Size: 22.8 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Agents: AGENTS.md
Awesome Lists containing this project
README
# todome
日本語 | [English](README_EN.md)
- **Kanbanボード** — TODO / 進行中 / 完了の3カラム、ドラッグ&ドロップ
- **AIアシスタント** — Claude がボードと目標を把握した上でアドバイス・タスク操作
- **目標管理** — 目標名・メモ・KPI(複数)・期日を設定し、タスクと紐付け
- **作業時間計測** — タスクごとに再生/一時停止、見積もり対比表示、完了時刻の記録
- **統計ダッシュボード** — 目標別作業時間の円グラフ、日/月/年の推移棒グラフ
- **プロフィール定義** — 現在の状態、バランスホイール、行動指針、やりたいことをAIコンテキストに反映
- **GitHub連携** — 端末間でのデータを共有 & 目標にリポジトリを紐付けてAIコンテキストに反映 ([利用規約との関係](docs/github-sync-compliance.md))
- **iCloudカレンダー連携 (CalDAV)** — Apple ID と App用パスワードで接続し、iCloud のカレンダーをスケジュールタブに読み込み(読み取り専用、RRULE 展開対応)
| Kanban形式でのタスク管理 | タスク管理をAIにお任せ | 目標もタスクもAIに相談 |
|:---:|:---:|:---:|
|  |  |  |
| **AIと一緒に振り返り** | **テーマを切り替えて気分を変える** | **Gitによる履歴管理** |
|  |  |  |
## コンセプト
todome は完成したアプリでありながら、**ユーザーがForkして、自分専用のマネジメント環境として育てていくアプリ**としても設計されています。
ぜひお手元の環境で自分好みに調整してみてください。
- 自前のAIエージェントで独自機能を追加
- 自分の使い勝手に合わせて画面や挙動を自由に書き換え
### ストア配布しない理由
簡単なアプリならAIですぐに作れる時代では、「ストアでアプリを探す」よりも「自分で作ったほうが早い」という場面も珍しくありません。それほど、自分の要望に100%合致するアプリを見つけるのは難しくなっています。
今後AI製アプリがストアに溢れていくと、ユーザーは目的のアプリを探すこと自体に疲れてしまい、やがて個人開発アプリはユーザーから選ばれなくなっていくのではないか——私はそう考えています。
そこで行き着いたのは、「ユーザーはストアで欲しいアプリを探し続けるよりも、自分で欲しいアプリを作れたほうが幸せなのではないか」という発想です。それに自分だけがチート釣り竿を持った状態でユーザーに魚を売り捌くのは、どこかフェアではないと感じます。ユーザーにも同じ釣り竿を渡したうえで、「自分で作ったものより、このアプリのほうが質が良いから使いたい」と言ってもらえるのが理想です。
todome は、各ユーザーが自分のローカル環境で理想の形に育てていけるアプリとして設計しています。アプリを開発プラットフォームとして公開することで「自分のアプリを作る楽しさ」を体験していただく——それが todome のコンセプトです。
## 画面説明書
画面説明書を `docs/manual/` に配置しています。
- 公開 URL: https://tanitaka-tech.github.io/todome/manual/
- 更新手順: [docs/manual/README.md](docs/manual/README.md) を参照
- ローカル表示: `cd docs && python3 -m http.server 8765` → `http://127.0.0.1:8765/manual/`
## セットアップ
### 前提条件
- **Node.js** 18+
- **[Bun](https://bun.sh/)** 1.3+ (サーバーランタイム)
- 契約済みのClaudeCode と **Anthropic API Key** もしくは `claude login` でログイン済みの環境
- **[gh CLI](https://cli.github.com/)** (任意 — GitHub 同期機能を使う場合)
### 1. リポジトリをクローン
```bash
git clone https://github.com//todome.git
cd todome
```
### 2. 環境変数を設定(`claude login` 済みならスキップ可)
`claude login` でログイン済みの環境では Anthropic API Key の設定は不要です。このステップは飛ばして次へ進んでください。
API Key で利用する場合や、データ保存先・ポートを変更したい場合のみ、プロジェクトルートに `.env` を作成します。サンプルとして `.env.example` を同梱しているので、そこからコピーするのが手早いです。
```bash
cp .env.example .env
# 必要な行のコメントを外して値を編集
```
設定可能な環境変数:
| 変数 | デフォルト | 説明 |
|---|---|---|
| `ANTHROPIC_API_KEY` | (未設定) | Anthropic API Key。`claude login` 済みなら不要。 |
| `TODOME_DATA_DIR` | `./data` | SQLite DB・GitHub 同期状態・各種設定 JSON の保存先。 |
| `TODOME_BACKEND_PORT` | `3002` | Bun サーバーが listen するポート。 |
### データの保存場所と認証情報の取り扱い
`TODOME_DATA_DIR`(デフォルト `./data`)配下に以下が保存されます。**いずれも平文**です。`data/` は `.gitignore` 済みでローカル限定ですが、暗号化はしていないので取り扱いに注意してください。
| ファイル | 内容 |
|---|---|
| `todome.db` | Kanban / 目標 / プロフィール / 振り返り / スケジュール 等の SQLite DB |
| `github_config.json` | GitHub 同期先リポジトリの紐付け情報(OAuth トークンは `gh` CLI 側に保存) |
| `ai_config.json` | AI ツール許可リストとモデル設定 |
| `app_config.json` | 日の境界時刻などのアプリ設定 |
| `caldav_config.json` | **iCloud (CalDAV) の Apple ID と App用パスワード**。接続切断時に削除されます。 |
| `repo/` | GitHub 連携時に clone されるリポジトリ(DB はここに切り替わる) |
iCloud 連携を使う場合は [appleid.apple.com](https://appleid.apple.com) で **App用パスワード** を発行してください。Apple ID の本パスワードは絶対に入力しないでください。
### 3. 依存関係をインストール
```bash
# サーバー (Bun)
bun install
# フロントエンド
cd client
npm install
cd ..
```
## 起動方法
### ワンコマンド起動 (推奨)
```bash
./start.sh # 開発モード (Vite + bun --watch を並列起動)
./start.sh prod # 本番モード (client をビルドして Bun のみ起動)
```
- 開発モードはブラウザで **http://localhost:5173**、本番モードは **http://localhost:3002** でアクセスします。
- Ctrl+C で両方のプロセスが停止します。
- `client/node_modules` / `node_modules` が無ければ初回に `npm install` / `bun install` が自動実行されます。
### 手動で起動する場合
開発モード (ターミナル2つ)
```bash
# ターミナル 1: フロントエンド (HMR)
cd client && npm run dev
```
```bash
# ターミナル 2: バックエンド (Bun ホットリロード)
bun --watch server/index.ts
```
本番モード (サーバー1つ)
```bash
cd client && npm run build && cd ..
bun server/index.ts
```
## 使用例
- **スマホからアクセスする** — PC で起動した todome をスマホのブラウザから開く方法(同一LAN / Tailscale / cloudflared)。詳細は [docs/smartphone-access.md](docs/smartphone-access.md) を参照。
## 技術スタック
| レイヤー | 技術 |
|---|---|
| フロントエンド | React 19 + Vite + TypeScript |
| バックエンド | Bun + Hono + WebSocket (TypeScript) |
| AI | Claude Agent SDK (Sonnet) |
| 通信 | WebSocket リアルタイム双方向 |
## ファイル構成
```
todome/
├── server/ # Bun + Hono + WebSocket バックエンド
│ ├── index.ts # エントリポイント (Bun.serve)
│ ├── config.ts / db.ts / state.ts
│ ├── storage/ # SQLite I/O (kanban / goals / profile / retro / github)
│ ├── ai/ # Claude Agent SDK ラッパー
│ ├── github/ # gh CLI / git 連携 (sync / diff / autosync)
│ └── ws/ # WebSocket endpoint と handler dispatch
├── package.json # サーバー依存関係 (Bun)
├── .gitignore
├── README.md
├── data/ # SQLite DB・GitHub 同期状態 (gitignore)
└── client/
├── package.json # フロントエンド依存関係
├── index.html # HTML エントリポイント
├── vite.config.ts # Vite 設定
├── tsconfig*.json # TypeScript 設定
├── public/
│ └── favicon.svg
└── src/
├── main.tsx # React マウントポイント
├── types.ts # 型定義
├── style.css # スタイリング
├── hooks/
│ └── useWebSocket.ts
└── components/
├── App.tsx # ルートコンポーネント (状態管理・タイマー)
├── KanbanBoard.tsx # Kanban ボード (D&D・タイマー)
├── ChatPanel.tsx # AI チャットパネル
├── AskUserCard.tsx # AI 質問カード
├── TaskDetailModal.tsx # タスク詳細モーダル
├── GoalPanel.tsx # 目標管理パネル
├── StatsPanel.tsx # 統計ダッシュボード
└── ProfilePanel.tsx # プロフィール編集
```
## アーキテクチャ
```
ブラウザ (React) サーバー (Bun + Hono)
┌──────────────────┐ ┌──────────────────┐
│ KanbanBoard │──kanban_*────→ │ │
│ GoalPanel │──goal_*──────→ │ 状態管理 │
│ ProfilePanel │──profile_*───→ │ (タスク/目標/ │
│ │←─*_sync────── │ プロフィール) │
├──────────────────┤ │ │
│ ChatPanel │──message─────→ │ Claude Agent SDK │
│ │──ask_response─→ │ - TodoWrite │
│ │←─stream_delta─ │ - AskUser │
│ │←─assistant──── │ - GOAL_ADD/UPDATE│
│ │←─kanban_sync── │ │
│ │←─goal_sync──── │ │
└──────────────────┘ └──────────────────┘
```
## Special Thanks
開発にあたって参考にさせていただいた資料は [docs/special-thanks.md](docs/special-thanks.md) に記載しています。
## ライセンス
MIT