Tracking Logotracking software

Back to tracking.so

Docs

Bring your own curriculum

Attach a folder of markdown files to a tracking.so plan. Your files stay the source of truth for content; tracking.so keeps the state, streaks, schedule, and coach accountability.

tracking.so plans are deliberately simple: a goal, activities, sessions, and the visuals around them. Complex self-built learning paths, like a 12-week deep learning curriculum or a robotics track with daily checklists, should not have to live inside one notes field.

Bring your own curriculum lets you attach markdown files from an Obsidian folder, git repo, or any local directory to a plan. The coach reads those files directly when it prepares your week, repairs a schedule gap, or discusses the plan in chat.

What gets attached

  • Markdown files, up to 100 files per plan.
  • Files can be up to 200 KB each.
  • Relative paths are preserved, so notes/rules.md stays notes/rules.md.
  • Replacing the bundle removes files you removed locally.

Option A: setup prompt, recommended

Open Settings - Integrations and API Keys in the app, create an API key, and copy the generated setup prompt into your agent, such as Claude Code, Codex, or Cursor. The prompt is readable before you send it. Your agent then:

  1. Registers the MCP server at https://api.tracking.so/mcp with your key as a Bearer token.
  2. Installs the tracking.so usage skill from https://api.tracking.so/skill.md.
  3. Verifies the connection with get_user_state.
  4. If your account has no plans yet, interviews you and creates your first plan.
  5. Asks whether you have a curriculum folder to attach.

Manual Claude Code MCP registration, if you prefer:

claude mcp add --scope user --transport http tracking-so https://api.tracking.so/mcp   --header "Authorization: Bearer tsk_..."

The MCP tools

ToolWhat it does
get_user_stateProfile, plans with schedule health, and recent logging - the current account snapshot.
list_plansActive plans with ids, schedule state, and curriculum file counts.
create_planCreate a plan with frequency habits or dated curriculum sessions.
list_curriculum_filesList markdown files attached to a plan.
read_curriculum_fileRead one attached markdown file.
replace_curriculumReplace the full bundle and remove files not included.
upsert_curriculum_filesAdd or update specific files while keeping the rest.

A typical session: "Read my curriculum in ~/personal/learning, tighten week 3, and push it to my robotics plan on tracking.so."

Option B: REST API

Same operations, plain HTTP. Auth can be a session JWT or a tsk_ API key.

PUT    /plans/:planId/curriculum          { files: [{ path, content }] }
GET    /plans/:planId/curriculum
GET    /plans/:planId/curriculum/file?path=schedule.md
DELETE /plans/:planId/curriculum

Option C: maintainer script

For self-hosters and development, upload directly from the backend package:

cd apps/backend-node
pnpm upload-curriculum --prod --username alex   --plan-goal "robotics" --dir ~/personal/learning

--plan-goal is a case-insensitive substring that must match exactly one active plan. Use --delete to remove the bundle.

How the coach uses it

Plans with curriculum files get context telling the coach that attached files exist and should override plan notes for curriculum content. The coach then lists and reads the attached files during weekly prep, session proposals, schedule-gap repairs, and plan-specific chat.

Roadmap

  • Checkbox write-back, so logging a linked activity updates the matching markdown task.
  • Folder sync through GitHub webhooks or an Obsidian plugin.
  • log_activity over MCP, so agent work sessions feed your streaks directly.