{"id":44823687,"url":"https://github.com/saxenauts/syke","last_synced_at":"2026-05-01T01:04:20.363Z","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-05-01T01:04:20.344Z","avatar_url":"https://github.com/saxenauts.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"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 local-first memory for AI tools.\n\nIt watches the agent harnesses you already use, keeps durable memory in a local\nSQLite store, and exposes the current map through `syke memex`, `syke ask`, and\nagent capability registration.\n\nThe current release is built around one simple promise:\n\n\u003e Your AI tools should remember your work without sending your whole life to a\n\u003e new hosted memory service.\n\n## What Syke Does\n\n- Reads local agent activity from supported harnesses such as Claude Code, Codex,\n  OpenCode, Cursor, GitHub Copilot, Antigravity, Hermes, and Gemini CLI.\n- Synthesizes durable memory into `~/.syke/syke.db`.\n- Projects the current working map into `~/.syke/MEMEX.md`.\n- Your agents can rely on MEMEX.md for cross harness continuity and collaboration\n- Lets you ask deeper questions with `syke ask`.\n- Lets you save explicit notes with `syke record`.\n- Runs a background daemon so memory can stay fresh without manual exporting.\n- Installs Syke capability surfaces into detected agent environments.\n\n## Is this right for you?\nIf you use more than 1 coding harness actively daily. Yes. \nIf you work on a single coding harness but concurrently (3-5 async sessions). Yes\nIf all your harness context fragmentation is on one device? Yes. No multi host support currently. \n\nRead more about the architecture choices and current direction below, read docs/ for more. \nTLDR:\n- Any agents can work well as a good memory if you give them a file system, markdown and bash.\n- All pre 2026 benchmarks for memory are saturated.\n- WIP Environment and Benchmark for what memory means in 2026 with meta harnesses, RLM, hyperagents, GEPA etc. \n- Current Syke architecture is the simplest answer to the cross harness context and continuity drift problems\n- Assumes no ontology and no deterministic scoping\n- Updates itself\n- Ambient Background Daemon on 15 minute cycle.\n- Pi agent runtime. \n\n\n\n## Quickstart\n\n```bash\npipx install syke\nsyke setup\nsyke doctor\nsyke memex\nsyke ask \"What changed this week?\"\n```\n\nAlternative install:\n\n```bash\nuv tool install syke\nsyke setup\n```\n\nAgent/non-interactive setup:\n\n```bash\nsyke setup --agent\n```\n\n`syke setup --agent` returns JSON with a `status` field:\n\n- `needs_runtime` - install Node.js 18+ and rerun setup\n- `needs_provider` - configure provider auth and rerun setup\n- `complete` - setup finished\n- `failed` - inspect the returned error\n\n## Daily Commands\n\n```bash\nsyke memex\nsyke ask \"what should I remember about this project?\"\nsyke record \"The release blocker is daemon setup on macOS.\"\nsyke status\nsyke doctor\n```\n\nBackground sync:\n\n```bash\nsyke daemon start\nsyke daemon status\nsyke daemon logs\nsyke daemon stop\n```\n\n## Where This Is Heading\n\nThe hard question for personal memory isn't whether a model can recall\nthings. It's what *memory* even means for someone who spends most of their\nlife on computers. Markdown and a filesystem is good enough for a single\nagent at smaller scales. Cross-harness work is chaotic in many many\ndifferent ways, and the interesting part is what happens when memory has\nto fit one specific person, span every tool they use, and keep evolving\nwith them.\n\nSyke's stance is **n = 1**. Every memory architecture has to be personalized\nto its user and keep adapting as they change. There is no universal\nanswer — only the next iteration of yours.\n\nWhile I work on the benchmarking side, the version that exists today is\ngood enough to use across your tools and play with. This is not the\nintended use — the intended use is the right synthesis prompt paired with\nmeasurables, and that comes later. In the meantime:\n\n- **The synthesis prompt is yours.** Open `~/.syke/PSYCHE.md` and the\n  synthesis skill at `syke/llm/backends/skills/pi_synthesis.md`. Edit them.\n  Watch the memex change with you. The prompt is the experiment.\n- **Make your own observations.** Run a few cycles, see what the memex\n  looks like against your real work, then\n  [open an issue](https://github.com/saxenauts/syke/issues) with what\n  surprised you, what was useful, what felt off.\n- **Bring the inspiration.** A lot of recent work points at how memory\n  could behave inside agents. Pick the ideas that fit your life and try\n  them. Syke is meant to be the substrate, not the answer.\n\n**Fun tip:** edit the synthesis prompt to have the agent read its own\nrollout traces and propose changes to its own memory. You've quietly\nbuilt a hyperagent meta-harness aimed at the memory problem itself. In\npractice it tends toward self-absorbed behavior — balancing that against\nmeasurable usefulness is exactly the kind of question good benchmarking\nprimitives would let us actually answer.\n\nWhat I'm focused on next is the harder side: how do we even *measure*\nmemory. The goal is a practical modular environment formalisation that works on your data,\nyour workflow, your sense of what counts as remembering well and builds a benchmark for your use. If the\nprimitives hold up, we'll be able to say which architectures are better or\nworse at which kinds of memory problems, instead of arguing about it in pre 2026 terms. \nWithout that, iteration is guesswork, any architecture will give you SoTA\n\nIssues, pull requests, and forks all welcome.\n\n## Trust Model\n\nSyke is intentionally local-first.\n\n- Primary workspace: `~/.syke/`\n- Mutable memory store: `~/.syke/syke.db`\n- Current memex projection: `~/.syke/MEMEX.md`\n- Identity/runtime prompt context: `~/.syke/PSYCHE.md`\n- Adapter guides: `~/.syke/adapters/{source}.md`\n- Pi provider/runtime state: `~/.syke/pi-agent/`\n\nAsk and synthesis run through Pi inside Syke's workspace contract. On macOS,\nSyke launches Pi with an OS sandbox that denies broad filesystem reads and only\nallows catalog-scoped harness paths, Syke workspace writes, temp writes, and\nnetwork needed for provider calls.\n\n## macOS Permissions And Sandbox\n\nSyke has two macOS safety layers:\n\n- **Runtime sandbox:** ask and synthesis run Pi under `sandbox-exec` when\n  available. The sandbox is deny-default for broad file reads, grants read-only\n  access to selected harness roots, and grants write access to Syke's workspace,\n  the active Pi state directory, and temp directories.\n- **Launchd-safe daemon path:** background sync should not run directly from a\n  source checkout under `~/Documents`, `~/Desktop`, or `~/Downloads`, because\n  macOS TCC can block launchd from reading those paths. Syke uses a stable\n  launcher under `~/.syke/bin/syke`; source checkouts may need\n  `syke install-current` before background sync is enabled.\n\nThe sandbox is a filesystem boundary, not a network isolation system. Outbound\nnetwork is allowed so provider calls can work. Linux sandboxing with bubblewrap\nis not claimed in this release.\n\n## Setup And Source Selection\n\n`syke setup` is inspect-then-apply. It reports detected providers, sources, and\nplanned writes before applying changes.\n\nSource selection is a real persisted contract:\n\n- Interactive setup lets you select detected sources.\n- Automation can pass repeated `--source` values to `syke setup` or `syke sync`.\n- Selected sources are saved at `~/.syke/source_selection.json`.\n- Daemon and synthesis flows read the persisted selection.\n- The runtime sandbox uses selected sources to narrow which harness roots Pi can\n  read.\n- Invalid persisted selections fail closed instead of silently broadening scope.\n\n## Providers\n\nSyke uses Pi's provider catalog. Common flows:\n\n```bash\nsyke auth set openai --api-key \u003cKEY\u003e --model gpt-5.4 --use\nsyke auth login openai-codex --use\nsyke auth set openrouter --api-key \u003cKEY\u003e --model openai/gpt-5.1-codex --use\nsyke auth status\n```\n\nProvider resolution order:\n\n1. `--provider`\n2. `SYKE_PROVIDER`\n3. `~/.syke/pi-agent/settings.json`\n\nUse `syke auth status` and `syke doctor` when behavior does not match what you\nexpected.\n\n## Supported Harnesses\n\nActive local harnesses currently include Claude Code, Codex, OpenCode, Cursor,\nGitHub Copilot, Antigravity, Hermes, and Gemini CLI.\n\nSee [PLATFORMS.md](PLATFORMS.md) for exact artifact paths and status.\n\n## Runtime And Replay Boundary\n\nThis repository is the product/runtime surface.\n\nReplay, evaluation, benchmark orchestration, and research assets live in a\nseparate sibling repo:\n\n```text\n../syke-replay-lab\n```\n\nSee [docs/RUNTIME_AND_REPLAY.md](docs/RUNTIME_AND_REPLAY.md) for the cross-repo\ncontract.\n\n## Release Confidence\n\nThe release gate covers:\n\n- full Python test suite\n- ruff lint and format checks\n- wheel build\n- isolated wheel install smoke\n- isolated `uv tool install` smoke\n- daemon foreground smoke\n- package surface checks so docs, scripts, research, and replay-lab internals do\n  not ship inside the wheel\n\nSee [docs/RELEASE_READINESS.md](docs/RELEASE_READINESS.md) for the current\nmaintainer checklist.\n\n## Docs\n\n**Getting started**\n\n- [Setup Guide](docs/SETUP.md)\n- [Providers](docs/PROVIDERS.md)\n- [Config Reference](docs/CONFIG_REFERENCE.md)\n\n**Runtime**\n\n- [Architecture](docs/ARCHITECTURE.md)\n- [Runtime and Replay](docs/RUNTIME_AND_REPLAY.md)\n\n**The story**\n\n- [Memex Evolution](docs/MEMEX_EVOLUTION.md) — first chapter, how the memex routing pattern emerged (Feb 2026)\n- [Memex Update 2](docs/MEMEX_UPDATE_2.md) — second chapter, the 0.5.2 cleanup (Apr 2026)\n\n[Docs Index](docs/README.md) for the full listing with reading paths.\n","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"}