{"id":50772458,"url":"https://github.com/ohmatey/synek","last_synced_at":"2026-06-11T20:05:34.731Z","repository":{"id":361574563,"uuid":"1249993646","full_name":"ohmatey/synek","owner":"ohmatey","description":"Knowledge canvas that turns chat prompts into living timelines","archived":false,"fork":false,"pushed_at":"2026-06-10T04:35:48.000Z","size":9341,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-10T06:26:39.835Z","etag":null,"topics":["ai","bun","knowledge-graph","local-first","react","self-hosted","sqlite","tanstack-start","timeline"],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ohmatey.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-26T07:56:17.000Z","updated_at":"2026-06-10T04:35:46.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/ohmatey/synek","commit_stats":null,"previous_names":["ohmatey/synek"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ohmatey/synek","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmatey%2Fsynek","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmatey%2Fsynek/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmatey%2Fsynek/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmatey%2Fsynek/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ohmatey","download_url":"https://codeload.github.com/ohmatey/synek/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ohmatey%2Fsynek/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34215430,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-11T02:00:06.485Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","bun","knowledge-graph","local-first","react","self-hosted","sqlite","tanstack-start","timeline"],"created_at":"2026-06-11T20:05:33.785Z","updated_at":"2026-06-11T20:05:34.722Z","avatar_url":"https://github.com/ohmatey.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Synek\n\n**Type an idea to Claude. Watch its history draw itself.**\n\nSynek is a living timeline you build *by talking to Claude*. Ask about something — the Stoics, the space race, the rise of deep learning — and Claude fills a visual canvas with the people, events, and eras involved, laid out along time and connected by how they influenced each other. It's a calm, permanent place for the things you're learning and researching.\n\nSynek runs **entirely on your own computer**. Your timelines live in a single file on your machine — no cloud, no account in someone else's database, no telemetry. Synek has no AI of its own; the intelligence comes from **your** Claude (Claude Code or Claude Desktop), which you connect in a couple of clicks.\n\n\u003e *Synek — from the Greek* synecheia*, \"continuity.\"*\n\n---\n\n## What you'll need\n\n- **A computer** (macOS, Linux, or Windows) where you can open a terminal.\n- **[Bun](https://bun.sh)** — the tool that runs Synek. Install it with one command from [bun.sh](https://bun.sh) (e.g. `curl -fsSL https://bun.sh/install | bash` on macOS/Linux).\n- **Claude** — either [Claude Code](https://www.claude.com/product/claude-code) or the [Claude Desktop](https://claude.ai/download) app. This is what actually builds your timelines.\n\nYou do **not** need an AI API key, an OpenAI key, or anything to sign up for. Synek uses the Claude you already have.\n\n---\n\n## Get it running (about 5 minutes)\n\nOpen a terminal in this folder and run these three commands:\n\n**1. Install Synek's pieces**\n```bash\nbun install\n```\n\n**2. Set everything up in one step**\n```bash\nbun run setup\n```\nThis prepares your private database, fills it with a starter **Stoicism** timeline so your canvas isn't empty, creates your personal access key, and prints the exact settings to connect Claude. **Copy the key it shows you — you'll see it only once.**\n\n**3. Start Synek**\n```bash\nbun run dev\n```\nNow open **http://localhost:3001** in your browser. You'll see your canvas with the Stoicism timeline already on it. 🎉\n\n(Prefer one command? `bun run setup --start` does steps 2 and 3 together.)\n\n---\n\n## Connect Claude\n\nSynek is the canvas; Claude is how you draw on it. Pick whichever you use:\n\n### Claude Code\n\nInstall the **Synek plugin** (it connects Claude Code to your canvas and teaches it how to build good timelines):\n\n```\n/plugin marketplace add ohmatey/synek\n/plugin install synek@synek\n```\n\nThen connect with **one click — no key to copy:**\n\n1. Make sure you're logged into `http://localhost:3001` (you set up your account above).\n2. Run `/mcp` → select **synek** → **Authenticate**. A browser opens; approve it.\n3. Now just type:\n\n```\n/synek:map the history of jazz\n```\n\n…and watch the canvas fill in. If anything seems off, run `/synek:setup` and it'll tell you exactly what to fix.\n\n### Claude Desktop\n\n`bun run setup` also printed a small settings block for Claude Desktop. Open Claude Desktop's config file (**Settings → Developer → Edit Config**), paste that block in, and restart Claude Desktop. Then just ask Claude in plain language:\n\n\u003e *\"Map the history of the space race onto my Synek timeline.\"*\n\n---\n\n## Make your first timeline\n\nHowever you connected Claude, the magic is the same: **talk about a topic**, and Synek builds it.\n\n- *\"Map the Stoic philosophers and how they influenced each other.\"*\n- *\"Add the major space missions of the 1960s to a new timeline.\"*\n- *\"Put the key moments in the history of vaccines on a timeline, with sources.\"*\n\nClaude creates the people, events, and eras; positions everything by date; draws the connections; and hands you a link to open the canvas. Every change is one tidy step you can undo.\n\n---\n\n## Your data is yours\n\n- Everything lives in a single file on your computer (`local.db` by default).\n- There's a simple local login (email + password) so only you can manage your timelines and keys — but it's all on **your** machine. Nothing is sent anywhere.\n- Want a clean slate? Delete `local.db` and run `bun run setup` again.\n\n---\n\n## If something's not working\n\n| Symptom | Fix |\n|---|---|\n| Claude says it can't reach Synek | Make sure `bun run dev` is running (you should be able to open http://localhost:3001). |\n| \"Unauthorized\" / key errors | Your key is set in the wrong place or missing. In Claude Code, run `/synek:setup`. Or open http://localhost:3001, sign in, and create a fresh key in the **Connect an MCP client** panel. |\n| The canvas is blank | Run `bun run setup` again — it re-adds the starter Stoicism timeline. |\n| Lost your key | Keys are shown only once. Just create a new one in the **Connect an MCP client** panel and revoke the old one. |\n\n---\n\n## Handy commands\n\n```bash\nbun run setup        # one-step setup: database + starter timeline + access key + connection settings\nbun run dev          # start Synek at http://localhost:3001\nbun run issue:key    # create a new access key from the terminal\nbun run db:seed      # add more example timelines\n```\n\n---\n\n## For developers\n\nCurious about the internals — the architecture, the MCP server, the data model, the \"one edit = one undoable Patch\" mechanic? See **[CLAUDE.md](CLAUDE.md)** for the full technical overview, and **[synek-plugin/](synek-plugin/)** for the Claude Code plugin.\n\n## License\n\n[MIT](./LICENSE) © 2026 Aaron McPherson\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohmatey%2Fsynek","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fohmatey%2Fsynek","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fohmatey%2Fsynek/lists"}