Skip to main content

justdo - Just do it! 🚀

一个用 TDD 方式开发的简单命令行待办事项工具,支持任务优先级、AI 智能建议、用户画像分析。

Just do it! - 简单、高效的待办事项管理工具

✨ 特性

  • 📋 任务管理 - 添加、完成、删除任务,支持优先级(高🔴/中🟡/低🟢)
  • 🤖 AI 增强 - 智能任务描述优化、个性化反馈、流式响应
  • 👤 用户画像 - 自动分析任务习惯,识别优势短板
  • 🗑️ 回收站 - 删除任务暂存,支持恢复和自动清理
  • 🌐 Web 界面 - 日式和风设计的单页应用
  • 高性能 - AI 响应优化(54秒 → 2.85秒)

安装

# 使用 pip 安装
pip install justdo

# 使用 uv 安装
uv pip install justdo

# 安装 AI 功能支持
pip install justdo[ai]

# 安装 Web 界面支持
pip install justdo[web]

使用方法

CLI 基础命令

# 添加任务(默认中等优先级)
jd add "购买牛奶"

# 添加高优先级任务 (1=高, 2=中, 3=低)
jd add "紧急任务" -l 1

# 列出所有任务
jd list

# 按优先级排序显示
jd list -s p

# 标记任务为完成(支持范围语法)
jd done 1
jd done 1 2-5 7

# 删除任务
jd delete 1

# 清空所有已完成的任务
jd clear

AI 功能

# 设置 API Key(智谱 GLM)
export OPENAI_API_KEY="your-api-key"
export OPENAI_BASE_URL="https://open.bigmodel.cn/api/paas/v4"

# AI 优化任务描述
jd add "写代码" --ai
# → AI 优化: 写代码 → 完成核心功能模块编码工作

# AI 智能建议(流式输出)
jd suggest --ai

# AI 对话模式
jd --chat "帮我分析今天的工作安排"

Web 界面

# 启动 Web 服务器(默认端口 8848)
jd-web

# 访问浏览器
open http://localhost:8848

Web 功能包括:

  • 🎨 日式和风极简设计
  • 📊 用户画像可视化
  • 🔄 实时流式反馈
  • 📱 响应式布局

用户画像

# 查看 API 请求示例
curl http://localhost:8848/api/profile/full

画像分析内容:

  • 📈 基础统计 - 总任务数、完成率、连续天数
  • 🎯 用户类型 - 执行模式、时间偏好、活动模式
  • 💪 优势短板 - AI 分析强项和改进建议
  • ⚠️ 风险预警 - 任务堆积、拖延提醒

回收站

# 查看 API 请求示例
curl http://localhost:8848/api/trash

回收站功能:

  • 🗂️ 删除任务自动暂存
  • 🔄 支持恢复已删除任务
  • ⏰ 30 天自动清理
  • 📊 按类别/优先级统计

优先级说明

优先级 Emoji 数字 说明
high 🔴 1 高优先级(紧急重要)
medium 🟡 2 中优先级(默认)
low 🟢 3 低优先级(可延后)

技术栈

类别 技术
语言 Python 3.8+
CLI argparse
Web FastAPI + uvicorn
AI OpenAI API (GLM-4)
数据存储 JSON
测试 pytest
包管理 uv / setuptools

开发

# 克隆仓库
git clone https://github.com/gqy20/justdo.git
cd justdo

# 使用 uv 安装开发依赖
uv pip install -e ".[dev,ai,web]"

# 运行测试
uv run python -m pytest

# 查看测试覆盖率
uv run python -m pytest --cov=justdo

# 安装包到本地
uv build
pip install dist/justdo-0.1.3-py3-none-any.whl

项目结构

justdo/
├── src/
│   └── justdo/
│       ├── __init__.py       # 包导出,版本 0.1.3
│       ├── models.py         # TodoItem 数据模型
│       ├── manager.py        # TodoManager 核心逻辑
│       ├── cli.py            # 命令行接口
│       ├── ai.py             # AI 集成(GLM-4)
│       ├── emotion.py        # 情感反馈引擎
│       ├── prompts.py        # AI Prompt 模板
│       ├── user_profile.py   # 用户画像分析
│       ├── trash.py          # 回收站管理
│       ├── api.py            # FastAPI Web 接口
│       └── static/
│           └── index.html    # 单页 Web 应用
├── tests/
│   ├── unit/                 # 单元测试
│   └── integration/          # 集成测试
├── docs/                     # 项目文档
│   ├── api.md                # API 文档
│   ├── architecture.md       # 架构设计
│   ├── components.md         # 组件清单
│   ├── development.md        # 开发指南
│   └── testing.md            # 测试策略
├── pyproject.toml            # 包配置
├── justdo.json               # 数据存储(自动生成)
├── justdo.profile.json       # 用户画像(自动生成)
└── justdo.trash.json         # 回收站(自动生成)

📚 文档

在线 API 文档

启动 Web 服务后访问:

  • Swagger UI: http://localhost:8848/docs
  • ReDoc: http://localhost:8848/redoc

主要端点

端点 方法 说明
/api/todos GET/POST 列表/创建任务
/api/todos/{id}/toggle POST 切换状态(SSE 流式)
/api/todos/{id} DELETE 删除任务
/api/profile/full GET 完整用户画像
/api/trash GET 回收站列表
/api/chat POST AI 对话

测试

项目采用 TDD 开发模式,100 个测试全部通过

  • 数据模型测试 - 优先级、权重计算
  • 业务逻辑测试 - CRUD、排序、过滤
  • CLI 命令测试 - 参数解析、输出格式
  • AI 功能测试 - 模拟 AI 响应、流式输出
  • 用户画像测试 - 统计分析、风险预警
  • 回收站测试 - 添加、恢复、清理
  • API 集成测试 - REST 接口、SSE 流式

性能优化

指标 优化前 优化后 提升
AI 响应时间 54 秒 2.85 秒 19x
AI 调用次数 4 次 1 次 75%

优化手段:

  • 统一分析:4 个场景 → 1 个 prompt
  • 流式响应:Token 级实时输出
  • 并发删除:批量操作优化

为什么叫 justdo?

  • 简洁有力 - 两个音节,朗朗上口
  • 寓意完美 - "Just do it!" 正是待办事项的核心精神
  • 命令简短 - jd 两个字母,快速输入
  • 易记易搜 - 用户搜索 "just do" 很容易找到
  • 国际化 - 英语通用,全球用户都能理解

配置

环境变量

变量 说明 必需
OPENAI_API_KEY 智谱 API Key AI 功能
OPENAI_BASE_URL API 基础 URL 可选

数据文件

文件 位置 说明
justdo.json ~/.local/share/justdo/ 任务数据
justdo.profile.json ~/.local/share/justdo/ 用户画像
justdo.trash.json ~/.local/share/justdo/ 回收站

链接

License

MIT

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

justdo-0.1.3.tar.gz (42.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

justdo-0.1.3-py3-none-any.whl (44.7 kB view details)

Uploaded Python 3

File details

Details for the file justdo-0.1.3.tar.gz.

File metadata

  • Download URL: justdo-0.1.3.tar.gz
  • Upload date:
  • Size: 42.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for justdo-0.1.3.tar.gz
Algorithm Hash digest
SHA256 81d0a15aea206acb85f54cc29adceb1566cc408b49c1937ede951ed6c6780d4e
MD5 9cf12077091eb7b7cd1066b289d0978f
BLAKE2b-256 8a9910eebac217048af8584ee3f747ff12540dfc4619c65975326d3eb8db49f7

See more details on using hashes here.

File details

Details for the file justdo-0.1.3-py3-none-any.whl.

File metadata

  • Download URL: justdo-0.1.3-py3-none-any.whl
  • Upload date:
  • Size: 44.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for justdo-0.1.3-py3-none-any.whl
Algorithm Hash digest
SHA256 534477d53a368815053818cf4f34a4b03ed20a23236789e64729ea0149b22555
MD5 a816859de13acbd5b22d46b1fc972d8b
BLAKE2b-256 40382474a86bffb177ac32d4103649a318d7b3e804e4516b2fdce1b3468124a2

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page