Release Notes (0.1.0)
New Features
- Initial release of
keioCLI for bidirectional sync between Google Keep and local markdown directories. - Core commands:
keio exportandkeio importfor full round-trip sync of notes. - Dual backend support: official Google Keep Enterprise REST API and unofficial
gkeepapi(any Google account). - Auth commands:
keio auth setup,keio auth login,keio auth logout,keio auth status. - Conflict detection via HTML comment footer (
<!-- keio:{...} -->) embedded in each exported markdown file. - Attachment download on export with inline markdown references (
). --imagesflag for semi-automated manual image upload during import (opens browser + file explorer, polls for attachments).- Checklist/list note support: automatically detects and round-trips Google Keep list notes as markdown checklists.
--dry-runand--forceflags for both export and import.- Incremental sync via
gkeepapistate caching. - Title collision handling with
[short_id]disambiguation on export.
Fixes
- Fix import incorrectly skipping all tracked untitled notes as "duplicate local title". The duplicate title check now applies only to notes going through the create path; tracked notes with
keep_namebypass it. - Fix
keio export --dry-rundownloading attachments from the API. Dry-run now returns early before any attachment network I/O. - Fix
keio auth statusshowing the enterpriseoauth-token.jsonpath when using gkeepapi. It now showsgkeepapi-state.json.
Housekeeping
- Add 27 new tests covering: tracked untitled note import, replace path, dry-run behavior, duplicate
keep_namedetection,_effective_titlelogic,content_hash_matches,remote_is_newer, untitled/list note export, checklist edge cases, backward-compatiblekiko:footer parsing, CRLF normalization, and authtoken_pathper method. - Add comprehensive "Implementation Deep Dive" section to
CLAUDE.md/AGENTS.mddocumenting import/export decision trees, content hash invariants, footer lifecycle, attachment reference parsing, gkeepapi child item mechanism,_effective_titleresolution, filename sanitization, replace semantics, error propagation, and--dry-run/--imagesbehavior.
Full Changelog: 64f2756...v0.1.0