Skip to main content

AI persistent memory layer for VS Code Copilot

Project description

engaku

AI persistent memory layer for VS Code Copilot — keeps project context, rules, and active tasks in front of the agent at every turn through VS Code Agent Hooks.

What it does

engaku gives VS Code Copilot durable project memory stored in .ai/ Markdown files. Agent Hooks automatically inject current context into every conversation, surface active-task steps on each prompt, and remind the agent when a task plan is complete and ready for review.

Installation

pip install engaku

Or install directly from source:

pip install git+https://github.com/JorgenLiu/engaku.git

Quick Start

# Bootstrap .ai/ and .github/ structure in your repo
engaku init

After running init, VS Code Agent Hooks are active. The @coder, @planner, @reviewer, and @scanner agents are available via .github/agents/. No further manual steps are needed — hooks fire automatically on SessionStart, UserPromptSubmit, Stop, and PreCompact.

What engaku init creates

.ai/
  overview.md       — project description, constraints, tech stack
  tasks/            — planner-managed task plans
  decisions/        — architecture decision records
.github/
  copilot-instructions.md   — global agent rules
  agents/           — coder, planner, reviewer, scanner agent definitions
  instructions/     — .instructions.md stubs for hooks, templates, tests
  skills/           — bundled skills (systematic-debugging, verification-before-completion, etc.)
.vscode/
  mcp.json          — MCP server configuration (chrome-devtools, context7, dbhub)

Subcommands

Command Purpose
init Bootstrap .ai/, .github/ structure and install VS Code Agent Hooks
inject Inject .ai/overview.md + active-task context (SessionStart / PreCompact hook)
prompt-check Detect rule/constraint in user prompt and inject active-task steps (UserPromptSubmit hook)
task-review Detect completed task plans and emit handoff reminder (Stop hook)
apply Apply .ai/engaku.json model config to .github/agents/ frontmatter

How it works

After engaku init, four Agent Hooks fire automatically:

  • SessionStartengaku inject: injects overview.md and the active-task's remaining unchecked steps at the start of every session.
  • PreCompactengaku inject: injects the full task body (Background, Design, File Map, and all checkbox lines) before conversation compaction so the compact model retains full task context.
  • UserPromptSubmitengaku prompt-check: scans each user prompt for new rules or constraints and injects all remaining unchecked task steps as a system message so the agent always knows what to do next.
  • Stopengaku task-review: after each agent turn, checks whether all steps in an in-progress task plan are ticked and emits a handoff reminder if so.

Requirements

  • Python ≥ 3.8 (stdlib only, no third-party dependencies)
  • VS Code with GitHub Copilot

Python 3.8 baseline: v1.0.x is the final release supporting Python 3.8. Users on constrained environments can pin with pip install "engaku<1.1". Later releases require Python 3.11+.

MCP Servers

engaku init creates .vscode/mcp.json with three preconfigured MCP servers that give VS Code Copilot structured tool access to browser automation, live library documentation, and databases. Use engaku init --no-mcp to skip this entirely.

engaku update adds any missing server entries to an existing .vscode/mcp.json without overwriting your customizations.

chrome-devtools-mcp

github.com/ChromeDevTools/chrome-devtools-mcp — Browser automation and DevTools via Puppeteer. Provides screenshot capture, page navigation, element interaction, JavaScript evaluation, Lighthouse performance audits, and network request inspection.

Prerequisites: Node.js + Chrome

{
  "chrome-devtools": {
    "command": "npx",
    "args": ["-y", "chrome-devtools-mcp@latest", "--headless"]
  }
}

context7

github.com/upstash/context7 — Live, version-specific library documentation. Two tools: resolve-library-id (search by name) and query-docs (fetch current docs). HTTP remote mode — no local process needed.

Prerequisites: None (network access only). Set CONTEXT7_API_KEY env var for higher rate limits.

{
  "context7": {
    "type": "http",
    "url": "https://mcp.context7.com/mcp"
  }
}

dbhub

github.com/bytebase/dbhub — Multi-database access supporting PostgreSQL, MySQL, MariaDB, SQL Server, and SQLite. Two tools: search_objects (schema exploration) and execute_sql (query execution).

Prerequisites: Node.js. Requires a DSN connection string (VS Code prompts on first use).

{
  "dbhub": {
    "command": "npx",
    "args": ["@bytebase/dbhub@latest", "--dsn", "${input:dbDsn}"]
  }
}

DSN formats:

Database Format
PostgreSQL postgres://user:pass@host:5432/db?sslmode=disable
MySQL mysql://user:pass@host:3306/db
MariaDB mariadb://user:pass@host:3306/db
SQL Server sqlserver://user:pass@host:1433/db
SQLite sqlite:///absolute/path/to/file.db

For passwords with special characters (:, @, #), use environment variables (DB_TYPE, DB_HOST, DB_PORT, DB_USER, DB_PASSWORD, DB_NAME) in the server's env block instead of encoding them in the DSN.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

engaku-1.1.0.tar.gz (42.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

engaku-1.1.0-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

Details for the file engaku-1.1.0.tar.gz.

File metadata

  • Download URL: engaku-1.1.0.tar.gz
  • Upload date:
  • Size: 42.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for engaku-1.1.0.tar.gz
Algorithm Hash digest
SHA256 cd439c0976435d91a2374362825bf17f3e63b4d8157213983325fd71305207bb
MD5 97e1db2e200374ff8c270d7f8f79530a
BLAKE2b-256 bda83b35b1bf8667003bef1d1d8640b95782b130fd9462e9f051165df8cb0c8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for engaku-1.1.0.tar.gz:

Publisher: publish.yml on JorgenLiu/engaku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file engaku-1.1.0-py3-none-any.whl.

File metadata

  • Download URL: engaku-1.1.0-py3-none-any.whl
  • Upload date:
  • Size: 42.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for engaku-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3545f779136ad07e8dd243b1851873a32af13df0d9801fd02d301a6292d6bb85
MD5 a0163e3026312badd13a76b8aa2bcc6b
BLAKE2b-256 9d1961ad5c7bc77feaa48e3a6b7693178e21bc8a2a47c29d569da2d8ae21de62

See more details on using hashes here.

Provenance

The following attestation bundles were made for engaku-1.1.0-py3-none-any.whl:

Publisher: publish.yml on JorgenLiu/engaku

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page