{"id":44823687,"url":"https://github.com/saxenauts/syke","last_synced_at":"2026-04-04T19:03:17.337Z","repository":{"id":338725648,"uuid":"1123596568","full_name":"saxenauts/syke","owner":"saxenauts","description":"dynamic identity - agentic memory - your digital extension for all your AI","archived":false,"fork":false,"pushed_at":"2026-04-01T19:51:58.000Z","size":5183,"stargazers_count":39,"open_issues_count":15,"forks_count":2,"subscribers_count":1,"default_branch":"main","last_synced_at":"2026-04-02T06:44:30.766Z","etag":null,"topics":["agent-sdk","ai","anthropic","claude","context","identity","mcp","memory"],"latest_commit_sha":null,"homepage":"https://dev.mysyke.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"agpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/saxenauts.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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":"2025-12-27T07:51:11.000Z","updated_at":"2026-04-01T19:43:56.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/saxenauts/syke","commit_stats":null,"previous_names":["saxenauts/syke"],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/saxenauts/syke","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saxenauts%2Fsyke","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saxenauts%2Fsyke/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saxenauts%2Fsyke/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saxenauts%2Fsyke/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/saxenauts","download_url":"https://codeload.github.com/saxenauts/syke/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/saxenauts%2Fsyke/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31409471,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-04T10:20:44.708Z","status":"ssl_error","status_checked_at":"2026-04-04T10:20:06.846Z","response_time":60,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["agent-sdk","ai","anthropic","claude","context","identity","mcp","memory"],"created_at":"2026-02-16T21:00:37.637Z","updated_at":"2026-04-04T19:03:17.325Z","avatar_url":"https://github.com/saxenauts.png","language":"Python","readme":"# Syke\n\n[![PyPI](https://img.shields.io/pypi/v/syke)](https://pypi.org/project/syke/)\n[![Python 3.12+](https://img.shields.io/badge/python-3.12%2B-blue.svg)](https://python.org)\n[![CI](https://github.com/saxenauts/syke/actions/workflows/ci.yml/badge.svg)](https://github.com/saxenauts/syke/actions/workflows/ci.yml)\n[![License: AGPL-3.0-only](https://img.shields.io/badge/license-AGPL--3.0--only-blue.svg)](LICENSE)\n\nSyke is a local-first cross-harness agentic memory. It works with the AI harnesses you already use, keeps them in sync, and adapts its memory design to match your usage patterns.\n\nAI-enabled work now means many sessions running in parallel across different harnesses, agents, repos, and chats. A decision made in one place often fails to reach the next place where it matters. Syke connects those threads so context carries forward.\n\nThat improves continuity and memory. It also makes the harnesses more efficient. They can rely more on what has already been discovered, decided, or learned, instead of starting over each time.\n\nSyke introduces a kind of federation across your harnesses. Each harness can keep its own memory design and still rely on a general memory agent specialized in continuity across them. In that sense, Syke becomes a memory of memory.\n\n## Start Here\n\n### Use Syke directly\n\n```bash\npipx install syke\nsyke setup\nsyke doctor\nsyke context\nsyke ask \"What changed this week?\"\n```\n\n`syke setup` reviews the current setup plan first, guides provider selection if needed, validates the provider with a live Pi probe, ingests detected sources, runs initial synthesis when needed, and can enable background sync as a separate choice.\n\n\u003cdetails\u003e\n\u003csummary\u003eOther install methods\u003c/summary\u003e\n\n**uv tool install**\n\n```bash\nuv tool install syke\nsyke setup\n```\n\n**From source**\n\n```bash\ngit clone https://github.com/saxenauts/syke.git \u0026\u0026 cd syke\nuv sync --extra dev --locked\nuv run syke setup\n```\n\u003c/details\u003e\n\n### Use Syke through an agent\n\nIf you're an agent setting up Syke for a user, follow this sequence:\n\n```bash\n# 1. Install\npipx install syke          # or: uv tool install syke\n\n# 2. Run agent setup\nsyke setup --agent         # returns JSON — read the \"status\" field\n\n# 3. If status is \"needs_provider\", configure auth and retry\nsyke auth set \u003cprovider\u003e --api-key \u003cKEY\u003e --use\nsyke setup --agent\n\n# 4. Confirm health\nsyke doctor\n```\n\nCommon providers: `anthropic`, `openai`, `azure-openai-responses`, `kimi-coding`, `openrouter`.\nFor Azure, also pass `--base-url https://\u003cresource\u003e.openai.azure.com/openai/v1 --model \u003cmodel\u003e`.\n\nDo NOT run `syke setup` without `--agent` — that launches an interactive menu.\n\nOnce setup is done:\n\n- `syke ask \"...\"` — deep recall across all sessions\n- `syke record \"...\"` — save notes, decisions, TODOs\n- `syke context` — read the current memex (fastest)\n- `syke status` — check what's connected and running\n\nAfter onboarding, Syke installs a skill file into detected agent harnesses and keeps a live memex updated every ~15 minutes.\n\n## Why this loop is trustworthy\n\nSyke separates capture from inference. Supported local harnesses feed raw activity into an append-only events timeline. When Syke synthesizes memory or answers a question, it does so inside a local workspace where the events snapshot is read-only, the learned-memory store is writable, and the current memex is routed back out as additive context.\n\nThat gives you something simple to trust: a record you can inspect, a memory layer that carries forward, and a loop that stays local-first until ask or synthesis calls your configured provider.\n\n## How It Works\n\n```text\n Claude Code      Codex        Hermes       OpenCode\n      \\             |             |             /\n       \\            |             |            /\n        +-----------+-------------+-----------+\n                            |\n                            v\n           Observe: deterministic local ingest\n                 no LLM before the ledger\n                            |\n                            v\n        +-------------------------------------------+\n        | events.db                                 |\n        | immutable observed timeline               |\n        | append-only evidence ledger               |\n        +-------------------------------------------+\n                            |\n                            v\n        +-------------------------------------------+\n        | local Syke workspace                      |\n        |                                           |\n        |  read   events.db snapshot                |\n        |  write  syke.db learned memory            |\n        |  route  MEMEX.md                          |\n        |                                           |\n        |  ask and synthesis run here               |\n        +-------------------------------------------+\n                            |\n             +--------------+---------------+\n             |                              |\n             v                              v\n      direct reads                    routed context\n      syke context                    syke ask\n                                      MEMEX.md\n                                      capability surfaces / SKILL.md\n```\n\n- `events.db` stores what happened.\n- `syke.db` stores what Syke currently believes.\n- `MEMEX.md` is the current map returned to future work.\n- The raw timeline stays separate from learned memory.\n\nCurrent output-side scope is:\n\n- export the canonical `MEMEX.md`\n- register the Syke capability package on supported harness capability surfaces\n\nHarness-specific memex injection or startup wiring is a later phase.\n\n## CLI\n\n```bash\nsyke ask \"question\"   # deeper timeline and evidence-backed recall\nsyke context          # current memex, instant local read\nsyke record \"note\"    # write an observation back into memory\nsyke status           # quick operational snapshot\nsyke doctor           # deeper diagnostic\nsyke setup            # start or repair the system\nsyke sync             # manual refresh and synthesis cycle\n```\n\nUse `syke ask` when the agent needs more than the current memex. Use `syke context` when the current memex is enough and speed matters. Use `syke record` after useful work so the next session inherits it.\n\n`syke status` is the quick snapshot. `syke doctor` is the deeper repair path.\n\n\u003cdetails\u003e\n\u003csummary\u003eBackground sync commands\u003c/summary\u003e\n\n```bash\nsyke daemon start\nsyke daemon stop\nsyke daemon status\nsyke daemon logs\n```\n\u003c/details\u003e\n\n## Platforms\n\nSyke discovers supported local harnesses from its built-in Observe catalog and their expected local paths. During setup, it scans those paths, checks what is actually present on disk, validates a shipped seed adapter when one exists, and ingests what it finds.\n\nSupported local harnesses today:\n\n- **Claude Code**: sessions, tools, projects, branches\n- **Codex**: rollout sessions, thread metadata, tool and model metadata\n- **OpenCode**: SQLite sessions and model metadata\n- **Cursor**: local chat/session state from official user-data roots\n- **GitHub Copilot**: Copilot CLI session state plus VS Code chat session files\n- **Antigravity**: workflow artifacts, walkthroughs, and browser recording metadata\n- **Hermes**: SQLite/session history and tool traces\n- **Gemini CLI**: chat recordings and checkpoint artifacts\n\nCurrent active discovery roots in code include:\n\n- `~/.claude/projects`\n- `~/.claude/transcripts`\n- `~/.codex`\n- `~/Library/Application Support/Cursor/User/...` or `~/.config/Cursor/User/...`\n- `~/.copilot/session-state`\n- `~/Library/Application Support/Code/User/...` or `~/.config/Code/User/...`\n- `~/.gemini/antigravity`\n- `~/.hermes`\n- `~/.gemini/tmp`\n- `~/.local/share/opencode`\n\nAll ingestion is local-first. Syke reads these surfaces from local files and local databases.\n\nWhen a supported harness exposes a native capability surface, Syke can register its canonical Syke capability package there as part of distribution.\n\nFor supported harnesses, setup is now seed-first. It validates the shipped adapter for the detected source, deploys it into the user adapter directory when validation passes, and only falls back to the Observe factory when a shipped seed is missing or fails validation on the local artifact shape.\n\nIf your harness layout is unusual, or if you want to connect a new harness yourself, use:\n\n```bash\nsyke connect /path/to/your/harness\n```\n\nThe factory remains the repair and unknown-harness path. It inspects real local artifacts, writes one adapter, validates it strictly, and deploys it into Syke's local adapters directory.\n\n## Privacy and ownership\n\nCanonical user stores live under `~/.syke/data/{user}/`. The workspace mirrors current state locally for synthesis and ask flows.\n\n- `events.db` is the immutable observed ledger.\n- `syke.db` is the learned-memory store.\n- `MEMEX.md` is the current memex returned to future sessions.\n- A content filter strips API keys, OAuth tokens, credential patterns, and private message bodies before ingest.\n- Network calls go only to your configured LLM provider during ask and synthesis.\n\nUsers should have one place under their control for the scattered material their harnesses leave behind.\n\n## What changes when Syke is running\n\nThe simplest change is that your agents stop starting from blank.\n\nA decision made in one harness can show up in the next place where it matters. A useful pattern does not have to stay trapped inside one session. A question like \"what did I ship today?\" can be answered from accumulated work instead of being rebuilt from scratch.\n\nThe bigger bet is that memory management itself should improve from use. Syke keeps the raw timeline separate from learned memory, then uses synthesis to keep reshaping the memex as a map. Over time, that lets the system learn better routes through a user's own history instead of forcing one fixed memory schema on everyone.\n\nOne controlled example: on February 26, 2026, the same question was asked against the same codebase in the same minute: \"What did I ship today?\" Manual multi-agent orchestration was compared with `syke ask`.\n\n| Metric | Result |\n|--------|--------|\n| Token usage | 55% fewer tokens, from 970K to 431K |\n| User-facing calls | 96% fewer calls, from 51 to 2 |\n| Agents spawned | 3 to 0 |\n\nThis is one measured example from one workflow on one date. Freshness still has a gap of up to 15 minutes. The current claim is narrower and more useful: continuity can reduce reconstruction, and memory can get better at routing through repeated use.\n\n## Learn More\n\n**Start here**\n\n- [Setup Guide](docs/SETUP.md)\n- [Providers](docs/PROVIDERS.md)\n- [Platforms](PLATFORMS.md)\n\n**Runtime and internals**\n\n- [Runtime Guide](docs/RUNTIME_AND_REPLAY.md)\n- [Architecture](docs/ARCHITECTURE.md)\n- [Config Reference](docs/CONFIG_REFERENCE.md)\n\n**Story and evolution**\n\n- [Memex Evolution](docs/MEMEX_EVOLUTION.md)\n\n\u003cdetails\u003e\n\u003csummary\u003eProvider examples\u003c/summary\u003e\n\n```bash\nsyke auth set openai --api-key YOUR_KEY --model gpt-5.4 --use\nsyke auth set openrouter --api-key YOUR_KEY --model openai/gpt-5.1-codex --use\nsyke auth login openai-codex --use\nsyke auth login anthropic --use\nsyke auth set zai --api-key KEY --model glm-5 --use\nsyke auth set kimi-coding --api-key KEY --model k2p5 --use\nsyke auth set azure-openai-responses --api-key KEY --endpoint URL --model gpt-5.4-mini --use\nsyke auth set localproxy --base-url URL --model MODEL --use\n```\n\u003c/details\u003e\n\n---\n\nAGPL-3.0-only\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaxenauts%2Fsyke","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsaxenauts%2Fsyke","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsaxenauts%2Fsyke/lists"}