Overview and Architecture
The session CLI is a lightweight workflow for keeping my BPC Odoo To-do in sync across MacBook and Studio, with Claude reading the state between chats. This chapter explains what it does and why the pieces fit the way they do.
What this solves
I work on two Macs (MacBook and Studio) and talk to Claude in multiple sessions over days. Claude forgets between sessions. My task list lives in Odoo To-do but Claude cannot reach it directly. The session workflow bridges that gap: every open and close produces a snapshot of my Odoo tasks in a git repo that both machines share, so wherever I pick up next — either machine, same or new Claude session — everything is current.
The three moving parts
Odoo To-do is where I actually manage tasks. Drag, tick, add, delete — as normal. The bpc-war-plan git repo (github.com/BPConsulting/bpc-war-plan) is the transport: it holds the scripts themselves plus the latest Odoo snapshot and a session log. macOS Keychain holds the Odoo password, one per machine, so nothing sensitive ever touches a file or a commit.
Why Keychain, not git
The repo is shared across machines via GitHub. If the Odoo password were in a file in the repo, it would be on GitHub too. Keychain keeps the password on each physical Mac, invisible to git. Both machines have the same script code and config (URL, DB, username) but each has its own Keychain entry for the password. One consequence: running session setup is needed once per machine.
What Claude sees
Claude reads exports/latest.json from the repo at the start of each chat where I share it. That file contains a snapshot of my open To-do tasks — names, tags, stages, deadlines, descriptions. Claude never connects to Odoo directly. The snapshot refreshes each time I run session open or session close. This means if I make changes in Odoo mid-session and want Claude to see them, I can run session pull to refresh without the full open/close cycle.