Docs
Yoshi is one journal that any AI can write to. Connect a chatbot, give your agent the MCP server, or script it with the yoshi CLI.
Connectors and the CLI need a Cloud account, because they reach your journal through the server. The apps work without one.
Connect ChatGPT & Claude
The MCP server is at:
https://api.getyoshi.app/mcp
Claude
- Settings → Connectors → Add custom connector.
- Paste the URL above.
- Sign in to Yoshi and approve. The tools show up in your chats.
ChatGPT
- Settings → Apps & Connectors → Advanced → turn on Developer mode.
- Create a connector with the URL above and OAuth authentication.
- Sign in to Yoshi and approve.
Then just say it:
- "Lunch was a bowl of beef noodles. Save it to my Yoshi."
- "Pull-ups 10 8 6 5, log it."
- "Add 'ship the landing page' to tomorrow under Yoshi."
- "How much protein did I eat this week?"
- "What did we work on today? Make it my to-do list."
Coding agents
Any agent that speaks MCP over HTTP can use the same server. It signs in through your browser the first time.
Claude Code
claude mcp add --transport http yoshi https://api.getyoshi.app/mcp
Then run /mcp in Claude Code to sign in.
Codex
codex mcp add yoshi --url https://api.getyoshi.app/mcp
codex mcp login yoshi
Your own agent
The server speaks Streamable HTTP and uses OAuth 2.1 with dynamic client registration, so standard MCP clients sign in on their own. Discovery is at /.well-known/oauth-authorization-server.
MCP tools
Tools that write need the write permission you approve on the consent page. A write that fails halfway leaves nothing behind.
| Tool | What it does |
|---|---|
log_food | Saves a meal, with the AI's best guess of calories, protein, carbs, fat and fiber. Answers with the day's totals against your goals. |
edit_food | Changes or removes one food item: its numbers, amount, name or meal. |
add_todo | Adds a to-do to a day, optionally under a topic. |
check_todo | Checks off (or unchecks) the to-do that best matches the text. |
log_training | Saves a workout, a line an exercise, written the way you'd jot it: Pull-ups 10 8 6 5. |
edit_training | Rewrites a day's training, to fix a number or remove an exercise. |
rename_exercise | Renames an exercise across many days, so "pullups" and "pull ups" become "Pull-ups". |
get_day | Reads a day: to-dos, training, food and totals. |
get_range | Reads up to 92 days with averages, for "how often did I train this month". |
search | Finds to-dos, food, training and notes containing some words, newest first. |
import_rows | Imports a few hundred rows of old logs, in the CSV format's shapes. |
CLI
yoshi is a single binary for signing in, importing and exporting.
yoshi login # opens the browser to sign in
yoshi whoami
yoshi import --dry-run todos.csv food.csv # checks the files, changes nothing
yoshi import todos.csv food.csv
yoshi export --format md --out journal/ # a Markdown file a week
yoshi export --format csv --out backup/ # four CSV files
yoshi logout # signs this computer out
- Sign-in: the token is kept in
~/.config/yoshi/config.json, readable only by you. SetYOSHI_TOKENto use another, for scripts. - File kind: taken from the file's name (todos, food, training, notes), or set with
--kind. - Exit codes:
0worked,1failed or the import found problems (each printed asfile:line: what),2wrong arguments.
Import & export
Yoshi takes a journal as up to four CSV files: todos, food, training and notes. Turn your old logs from Notion, Apple Notes, a spreadsheet or another app into these files, often by asking an AI to, then load them with the CLI or in the app (Settings → Data → Import CSV).
- Only
date(YYYY-MM-DD) is required. Unknown columns are ignored. - Importing twice doesn't duplicate: a row with an
idreplaces what was imported with that id before. - CSV export includes each row's
id, so it imports back as itself.
The full format, every column of every file, is in import.md. It's written so you can hand it to an AI along with your old data.