aikito 1.29.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- aikito-1.29.0/.gitignore +14 -0
- aikito-1.29.0/LICENSE +22 -0
- aikito-1.29.0/PKG-INFO +201 -0
- aikito-1.29.0/README.md +186 -0
- aikito-1.29.0/pyproject.toml +52 -0
- aikito-1.29.0/src/aikito/__init__.py +5 -0
- aikito-1.29.0/src/aikito/__main__.py +4 -0
- aikito-1.29.0/src/aikito/aikito_add.py +566 -0
- aikito-1.29.0/src/aikito/aikito_adopt.py +777 -0
- aikito-1.29.0/src/aikito/aikito_completion.py +744 -0
- aikito-1.29.0/src/aikito/aikito_completion_powershell.py +219 -0
- aikito-1.29.0/src/aikito/aikito_config.py +116 -0
- aikito-1.29.0/src/aikito/aikito_diff.py +91 -0
- aikito-1.29.0/src/aikito/aikito_doctor.py +1429 -0
- aikito-1.29.0/src/aikito/aikito_inbox.py +186 -0
- aikito-1.29.0/src/aikito/aikito_init.py +410 -0
- aikito-1.29.0/src/aikito/aikito_link.py +68 -0
- aikito-1.29.0/src/aikito/aikito_maintain.py +231 -0
- aikito-1.29.0/src/aikito/aikito_mcp.py +2179 -0
- aikito-1.29.0/src/aikito/aikito_memory.py +400 -0
- aikito-1.29.0/src/aikito/aikito_platform.py +357 -0
- aikito-1.29.0/src/aikito/aikito_project.py +893 -0
- aikito-1.29.0/src/aikito/aikito_registry.py +122 -0
- aikito-1.29.0/src/aikito/aikito_render.py +1118 -0
- aikito-1.29.0/src/aikito/aikito_resolve.py +360 -0
- aikito-1.29.0/src/aikito/aikito_status.py +894 -0
- aikito-1.29.0/src/aikito/aikito_subagent.py +1194 -0
- aikito-1.29.0/src/aikito/aikito_sync.py +175 -0
- aikito-1.29.0/src/aikito/aikito_templates.py +182 -0
- aikito-1.29.0/src/aikito/aikito_web.py +459 -0
- aikito-1.29.0/src/aikito/aikito_workspace.py +41 -0
- aikito-1.29.0/src/aikito/cli.py +2319 -0
- aikito-1.29.0/src/aikito/templates/agents/_header.toml +7 -0
- aikito-1.29.0/src/aikito/templates/agents/agy.toml +20 -0
- aikito-1.29.0/src/aikito/templates/agents/claude-code.toml +22 -0
- aikito-1.29.0/src/aikito/templates/agents/codex.toml +25 -0
- aikito-1.29.0/src/aikito/templates/agents/dsh.toml +20 -0
- aikito-1.29.0/src/aikito/templates/agents/github-copilot.toml +21 -0
- aikito-1.29.0/src/aikito/templates/agents/grok.toml +21 -0
- aikito-1.29.0/src/aikito/templates/agents/opencode.toml +22 -0
- aikito-1.29.0/src/aikito/templates/agents/pi.toml +22 -0
- aikito-1.29.0/src/aikito/templates/config.toml +9 -0
- aikito-1.29.0/src/aikito/templates/gitignore +7 -0
- aikito-1.29.0/src/aikito/templates/global/AGENTS.md +3 -0
- aikito-1.29.0/src/aikito/templates/memory/index.md +5 -0
- aikito-1.29.0/src/aikito/templates/project/AGENTS.md +0 -0
- aikito-1.29.0/src/aikito/templates/project/memory/index.md +3 -0
- aikito-1.29.0/src/aikito/templates/skills/aikito/SKILL.md +232 -0
- aikito-1.29.0/src/aikito/templates/skills/durable-memory/SKILL.md +71 -0
- aikito-1.29.0/src/aikito/templates/skills.toml +4 -0
- aikito-1.29.0/src/aikito/templates/subagents.toml +4 -0
- aikito-1.29.0/src/aikito/web/app.js +182 -0
- aikito-1.29.0/src/aikito/web/assets/ink-horizontal.svg +1 -0
- aikito-1.29.0/src/aikito/web/assets/ink-vertical.svg +1 -0
- aikito-1.29.0/src/aikito/web/assets/logo.png +0 -0
- aikito-1.29.0/src/aikito/web/assets/logo.svg +3 -0
- aikito-1.29.0/src/aikito/web/index.html +39 -0
- aikito-1.29.0/src/aikito/web/styles.css +75 -0
- aikito-1.29.0/tests/test_aikito_add.py +475 -0
- aikito-1.29.0/tests/test_aikito_adopt.py +405 -0
- aikito-1.29.0/tests/test_aikito_cli.py +2317 -0
- aikito-1.29.0/tests/test_aikito_completion.py +360 -0
- aikito-1.29.0/tests/test_aikito_completion_powershell.py +60 -0
- aikito-1.29.0/tests/test_aikito_config.py +91 -0
- aikito-1.29.0/tests/test_aikito_diff.py +146 -0
- aikito-1.29.0/tests/test_aikito_doctor.py +1326 -0
- aikito-1.29.0/tests/test_aikito_inbox.py +440 -0
- aikito-1.29.0/tests/test_aikito_init.py +359 -0
- aikito-1.29.0/tests/test_aikito_maintain.py +241 -0
- aikito-1.29.0/tests/test_aikito_mcp.py +1403 -0
- aikito-1.29.0/tests/test_aikito_platform.py +330 -0
- aikito-1.29.0/tests/test_aikito_project.py +509 -0
- aikito-1.29.0/tests/test_aikito_status.py +1042 -0
- aikito-1.29.0/tests/test_aikito_subagent.py +714 -0
- aikito-1.29.0/tests/test_aikito_web.py +269 -0
- aikito-1.29.0/tests/test_aikito_workspace.py +49 -0
aikito-1.29.0/.gitignore
ADDED
aikito-1.29.0/LICENSE
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Ethan St Lee (https://github.com/lsaint)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
7
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
8
|
+
in the Software without restriction, including without limitation the rights
|
|
9
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
10
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
11
|
+
furnished to do so, subject to the following conditions:
|
|
12
|
+
|
|
13
|
+
The above copyright notice and this permission notice shall be included in all
|
|
14
|
+
copies or substantial portions of the Software.
|
|
15
|
+
|
|
16
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
17
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
18
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
19
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
20
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
21
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
22
|
+
SOFTWARE.
|
aikito-1.29.0/PKG-INFO
ADDED
|
@@ -0,0 +1,201 @@
|
|
|
1
|
+
Metadata-Version: 2.5
|
|
2
|
+
Name: aikito
|
|
3
|
+
Version: 1.29.0
|
|
4
|
+
Summary: Durable workspace for governing context across AI agents
|
|
5
|
+
Project-URL: Homepage, https://github.com/lsaint/aikito
|
|
6
|
+
Project-URL: Repository, https://github.com/lsaint/aikito
|
|
7
|
+
Project-URL: Documentation, https://github.com/lsaint/aikito/blob/main/docs/README.md
|
|
8
|
+
Project-URL: Issues, https://github.com/lsaint/aikito/issues
|
|
9
|
+
Project-URL: Changelog, https://github.com/lsaint/aikito/blob/main/CHANGELOG.md
|
|
10
|
+
Author: lsaint
|
|
11
|
+
License-Expression: MIT
|
|
12
|
+
License-File: LICENSE
|
|
13
|
+
Requires-Python: >=3.12
|
|
14
|
+
Description-Content-Type: text/markdown
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<picture>
|
|
18
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lsaint/aikito/main/docs/assets/logo-dark.png">
|
|
19
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/lsaint/aikito/main/docs/assets/logo-light.png">
|
|
20
|
+
<img src="https://raw.githubusercontent.com/lsaint/aikito/main/docs/assets/logo-light.png" alt="Aikito Logo" width="160">
|
|
21
|
+
</picture>
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
<h1 align="center">Aikito</h1>
|
|
25
|
+
|
|
26
|
+
<p align="center">
|
|
27
|
+
<b>Multi-Agent · Multi-Project · Multi-OS · Multi-Machine</b>
|
|
28
|
+
</p>
|
|
29
|
+
|
|
30
|
+
<p align="center">
|
|
31
|
+
<a href="https://github.com/lsaint/aikito/releases"><img src="https://img.shields.io/github/v/release/lsaint/aikito" alt="Release"></a>
|
|
32
|
+
<a href="https://github.com/lsaint/aikito/actions/workflows/ci.yml"><img src="https://github.com/lsaint/aikito/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
33
|
+
<a href="https://github.com/lsaint/aikito/blob/main/LICENSE"><img src="https://img.shields.io/github/license/lsaint/aikito" alt="License"></a>
|
|
34
|
+
<img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-informational" alt="Platforms">
|
|
35
|
+
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/Python-3.12%20%7C%203.13%20%7C%203.14-blue.svg" alt="Python 3.12 | 3.13 | 3.14"></a>
|
|
36
|
+
<img src="https://img.shields.io/badge/dependencies-stdlib%20only-brightgreen.svg" alt="Dependencies: stdlib only">
|
|
37
|
+
</p>
|
|
38
|
+
|
|
39
|
+
[简体中文](README.zh-CN.md) · [Documentation](https://lsaint.github.io/aikito/)
|
|
40
|
+
|
|
41
|
+
Aikito keeps coding-agent instructions, skills, MCP definitions, subagents, and
|
|
42
|
+
durable memory in one Git-managed workspace, shared across agents and projects.
|
|
43
|
+
|
|
44
|
+
Aikito governs the workspace, agents maintain the memory, and you oversee it all.
|
|
45
|
+
|
|
46
|
+
<p align="center">
|
|
47
|
+
<img src="https://raw.githubusercontent.com/lsaint/aikito/main/docs/assets/aikito-overview.png" alt="Aikito overview">
|
|
48
|
+
</p>
|
|
49
|
+
|
|
50
|
+
## Why Aikito
|
|
51
|
+
|
|
52
|
+
AI agent resources fragment in three directions:
|
|
53
|
+
|
|
54
|
+
- Across tools: each agent requires a different configuration format
|
|
55
|
+
- Across projects: reusable knowledge, skills, and instructions are copied or
|
|
56
|
+
maintained across multiple repositories
|
|
57
|
+
- Across time: valuable decisions and hard-won lessons disappear into old
|
|
58
|
+
sessions
|
|
59
|
+
|
|
60
|
+
Aikito keeps the source files in one personal workspace and connects selected
|
|
61
|
+
resources to each agent and project. No database, daemon, vector store, or
|
|
62
|
+
hosted service is required.
|
|
63
|
+
|
|
64
|
+
## Durable Memory
|
|
65
|
+
|
|
66
|
+
The bundled [durable-memory skill](src/aikito/templates/skills/durable-memory/SKILL.md)
|
|
67
|
+
guides agents to retrieve useful notes, retain verified conclusions, and update
|
|
68
|
+
stale knowledge. Notes are plain Markdown with Git history.
|
|
69
|
+
|
|
70
|
+
For example, a writing preference belongs in global memory, while an API retry
|
|
71
|
+
decision belongs to its project. A project normally connects to global memory
|
|
72
|
+
and its own notes; these scopes organize context, not filesystem access permissions.
|
|
73
|
+
|
|
74
|
+
New workspaces enable the workflow by default; synchronization connects it to
|
|
75
|
+
agents. See [memory usage and opt-out](docs/durable-memory.md) and
|
|
76
|
+
[why memory needs a maintainer](docs/programming-agent-memory.md).
|
|
77
|
+
|
|
78
|
+
## Quick Start
|
|
79
|
+
|
|
80
|
+
### Let your coding agent set it up (recommended)
|
|
81
|
+
|
|
82
|
+
> Install and configure Aikito from https://github.com/lsaint/aikito. Read the
|
|
83
|
+
> README, `templates/skills/aikito/SKILL.md`, and any linked documentation relevant to the
|
|
84
|
+
> setup, then follow their safety requirements to initialize the workspace,
|
|
85
|
+
> synchronize resources with `aikito sync`, and verify the result with `aikito status`.
|
|
86
|
+
> Before importing or changing any existing Agent configuration, show me the
|
|
87
|
+
> planned changes and conflicts and wait for my approval. When setup is
|
|
88
|
+
> complete, summarize what is ready and guide me through the next step, including
|
|
89
|
+
> whether to register my first code project. Do not register a project without
|
|
90
|
+
> my confirmation.
|
|
91
|
+
|
|
92
|
+
<details>
|
|
93
|
+
<summary>Install manually (macOS / Linux / Windows)</summary>
|
|
94
|
+
|
|
95
|
+
On macOS or Linux with Homebrew:
|
|
96
|
+
|
|
97
|
+
```bash
|
|
98
|
+
brew install lsaint/tap/aikito
|
|
99
|
+
aikito init workspace ~/aikito
|
|
100
|
+
aikito sync --dry-run
|
|
101
|
+
aikito sync
|
|
102
|
+
aikito status
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Review the preview before applying synchronization. For existing configuration,
|
|
106
|
+
see [migration and safety](#migration-and-safety).
|
|
107
|
+
|
|
108
|
+
On Windows, use the [PowerShell installation guide](docs/installation.md#install-manually).
|
|
109
|
+
|
|
110
|
+
</details>
|
|
111
|
+
|
|
112
|
+
Continue with the **[four-step tutorial](docs/installation.md)** to connect your
|
|
113
|
+
first project and verify an instruction. For other tasks, use
|
|
114
|
+
[Agent Request Examples](docs/agent-workflow.md).
|
|
115
|
+
|
|
116
|
+
## See the Result
|
|
117
|
+
|
|
118
|
+
`aikito status` shows resource state across agents. Example output from a
|
|
119
|
+
configured workspace (agents and counts depend on your setup):
|
|
120
|
+
|
|
121
|
+
```text
|
|
122
|
+
┌───────────────────────┬──────────────┬────────┬────────────┬───────────┐
|
|
123
|
+
│ Agent │ Instructions │ Skills │ MCP Config │ Subagents │
|
|
124
|
+
├───────────────────────┼──────────────┼────────┼────────────┼───────────┤
|
|
125
|
+
│ Codex │ ✓ │ 2 › │ 0 │ 0 │
|
|
126
|
+
│ Claude Code │ ✓ │ 2 » │ 0 │ 0 │
|
|
127
|
+
│ Antigravity CLI │ ✓ │ 2 » │ 0 │ 0 │
|
|
128
|
+
│ OpenCode │ ✓ │ 2 › │ 0 │ 0 │
|
|
129
|
+
│ GitHub Copilot CLI │ ✓ │ 2 › │ 0 │ 0 │
|
|
130
|
+
│ DeepSeek Harness │ ✓ │ 2 › │ 0 │ 0 │
|
|
131
|
+
│ Grok Build │ ✓ │ 2 › │ 0 │ 0 │
|
|
132
|
+
│ Pi │ ✓ │ 2 › │ – │ – │
|
|
133
|
+
└───────────────────────┴──────────────┴────────┴────────────┴───────────┘
|
|
134
|
+
|
|
135
|
+
✓ all synced · 8 agents · 2 skills · 0 notes across 1 scopes
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
`aikito show memory` lists retained knowledge by scope. This separate example
|
|
139
|
+
shows one global note and two notes for project `example`:
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
┌─────────┬───────────────────┬──────────────────────────────┬───────┬──────┐
|
|
143
|
+
│ Scope │ Note File │ Title │ Index │ Link │
|
|
144
|
+
├─────────┼───────────────────┼──────────────────────────────┼───────┼──────┤
|
|
145
|
+
│ Global │ writing-style │ Keep explanations concise │ ✓ │ – │
|
|
146
|
+
├─────────┼───────────────────┼──────────────────────────────┼───────┼──────┤
|
|
147
|
+
│ example │ api-retry-policy │ Retry external APIs safely │ ✓ │ ✓ │
|
|
148
|
+
│ example │ release-checklist │ Release verification steps │ ✓ │ ✓ │
|
|
149
|
+
└─────────┴───────────────────┴──────────────────────────────┴───────┴──────┘
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
Global notes hold cross-project knowledge; project notes hold local decisions.
|
|
153
|
+
See [memory operations](docs/durable-memory.md#list-memory) for the full workflow.
|
|
154
|
+
|
|
155
|
+
Use [synchronization troubleshooting](docs/troubleshooting.md) to investigate
|
|
156
|
+
missing links, conflicts, or drift. Prefer a browser view? Run
|
|
157
|
+
[`aikito web`](docs/cli-reference.md#aikito-web) for the local, read-only Console.
|
|
158
|
+
|
|
159
|
+
## Boundaries
|
|
160
|
+
|
|
161
|
+
Aikito uses plain files and Git, with no background service required.
|
|
162
|
+
|
|
163
|
+
<details>
|
|
164
|
+
<summary>What Aikito does not do</summary>
|
|
165
|
+
|
|
166
|
+
- capture every agent action or conversation automatically
|
|
167
|
+
- run a vector store, embedding pipeline, or memory service
|
|
168
|
+
- inject context into every prompt through a background daemon
|
|
169
|
+
- orchestrate supervisor and worker agents
|
|
170
|
+
- replace your coding agent's native runtime
|
|
171
|
+
|
|
172
|
+
</details>
|
|
173
|
+
|
|
174
|
+
## Migration and Safety
|
|
175
|
+
|
|
176
|
+
Already have agent configuration? Run `aikito adopt` for a read-only import
|
|
177
|
+
preview. Review the plan before applying it; see
|
|
178
|
+
[adoption and backups](docs/safety.md#adoption).
|
|
179
|
+
|
|
180
|
+
Your workspace is a local Git repository. Review it for secrets and private
|
|
181
|
+
data before publishing; removing a secret in a later commit does not erase it
|
|
182
|
+
from history. Read the [safety model](docs/safety.md) and report vulnerabilities
|
|
183
|
+
through the [Security Policy](SECURITY.md).
|
|
184
|
+
|
|
185
|
+
## Documentation
|
|
186
|
+
|
|
187
|
+
- [Getting started](docs/installation.md): installation through your first working instruction.
|
|
188
|
+
- [Workspace and synchronization](docs/architecture.md): source files, scopes, and resource ownership.
|
|
189
|
+
- [Connect another machine](docs/workspace-portability.md): existing workspaces and custom paths.
|
|
190
|
+
- [CLI reference](docs/cli-reference.md): commands and shell completion.
|
|
191
|
+
- [Comparison](docs/comparison.md) and [FAQ](docs/faq.md): design choices and common questions.
|
|
192
|
+
|
|
193
|
+
[Chat Distiller](https://github.com/lsaint/chat-distiller) can turn browser AI
|
|
194
|
+
conversations into Markdown notes in your Aikito Inbox. See the
|
|
195
|
+
[capture and review workflow](docs/chat-distiller.md).
|
|
196
|
+
|
|
197
|
+
Browse the full [documentation site](https://lsaint.github.io/aikito/) for more.
|
|
198
|
+
|
|
199
|
+
## Support
|
|
200
|
+
|
|
201
|
+
If you find Aikito useful, you can [support its development](https://lsaint.github.io/donation/?utm_source=github&utm_medium=readme&utm_campaign=aikito).
|
aikito-1.29.0/README.md
ADDED
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
<p align="center">
|
|
2
|
+
<picture>
|
|
3
|
+
<source media="(prefers-color-scheme: dark)" srcset="https://raw.githubusercontent.com/lsaint/aikito/main/docs/assets/logo-dark.png">
|
|
4
|
+
<source media="(prefers-color-scheme: light)" srcset="https://raw.githubusercontent.com/lsaint/aikito/main/docs/assets/logo-light.png">
|
|
5
|
+
<img src="https://raw.githubusercontent.com/lsaint/aikito/main/docs/assets/logo-light.png" alt="Aikito Logo" width="160">
|
|
6
|
+
</picture>
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<h1 align="center">Aikito</h1>
|
|
10
|
+
|
|
11
|
+
<p align="center">
|
|
12
|
+
<b>Multi-Agent · Multi-Project · Multi-OS · Multi-Machine</b>
|
|
13
|
+
</p>
|
|
14
|
+
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://github.com/lsaint/aikito/releases"><img src="https://img.shields.io/github/v/release/lsaint/aikito" alt="Release"></a>
|
|
17
|
+
<a href="https://github.com/lsaint/aikito/actions/workflows/ci.yml"><img src="https://github.com/lsaint/aikito/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
|
|
18
|
+
<a href="https://github.com/lsaint/aikito/blob/main/LICENSE"><img src="https://img.shields.io/github/license/lsaint/aikito" alt="License"></a>
|
|
19
|
+
<img src="https://img.shields.io/badge/platform-macOS%20%7C%20Linux%20%7C%20Windows-informational" alt="Platforms">
|
|
20
|
+
<a href="https://www.python.org/downloads/"><img src="https://img.shields.io/badge/Python-3.12%20%7C%203.13%20%7C%203.14-blue.svg" alt="Python 3.12 | 3.13 | 3.14"></a>
|
|
21
|
+
<img src="https://img.shields.io/badge/dependencies-stdlib%20only-brightgreen.svg" alt="Dependencies: stdlib only">
|
|
22
|
+
</p>
|
|
23
|
+
|
|
24
|
+
[简体中文](README.zh-CN.md) · [Documentation](https://lsaint.github.io/aikito/)
|
|
25
|
+
|
|
26
|
+
Aikito keeps coding-agent instructions, skills, MCP definitions, subagents, and
|
|
27
|
+
durable memory in one Git-managed workspace, shared across agents and projects.
|
|
28
|
+
|
|
29
|
+
Aikito governs the workspace, agents maintain the memory, and you oversee it all.
|
|
30
|
+
|
|
31
|
+
<p align="center">
|
|
32
|
+
<img src="https://raw.githubusercontent.com/lsaint/aikito/main/docs/assets/aikito-overview.png" alt="Aikito overview">
|
|
33
|
+
</p>
|
|
34
|
+
|
|
35
|
+
## Why Aikito
|
|
36
|
+
|
|
37
|
+
AI agent resources fragment in three directions:
|
|
38
|
+
|
|
39
|
+
- Across tools: each agent requires a different configuration format
|
|
40
|
+
- Across projects: reusable knowledge, skills, and instructions are copied or
|
|
41
|
+
maintained across multiple repositories
|
|
42
|
+
- Across time: valuable decisions and hard-won lessons disappear into old
|
|
43
|
+
sessions
|
|
44
|
+
|
|
45
|
+
Aikito keeps the source files in one personal workspace and connects selected
|
|
46
|
+
resources to each agent and project. No database, daemon, vector store, or
|
|
47
|
+
hosted service is required.
|
|
48
|
+
|
|
49
|
+
## Durable Memory
|
|
50
|
+
|
|
51
|
+
The bundled [durable-memory skill](src/aikito/templates/skills/durable-memory/SKILL.md)
|
|
52
|
+
guides agents to retrieve useful notes, retain verified conclusions, and update
|
|
53
|
+
stale knowledge. Notes are plain Markdown with Git history.
|
|
54
|
+
|
|
55
|
+
For example, a writing preference belongs in global memory, while an API retry
|
|
56
|
+
decision belongs to its project. A project normally connects to global memory
|
|
57
|
+
and its own notes; these scopes organize context, not filesystem access permissions.
|
|
58
|
+
|
|
59
|
+
New workspaces enable the workflow by default; synchronization connects it to
|
|
60
|
+
agents. See [memory usage and opt-out](docs/durable-memory.md) and
|
|
61
|
+
[why memory needs a maintainer](docs/programming-agent-memory.md).
|
|
62
|
+
|
|
63
|
+
## Quick Start
|
|
64
|
+
|
|
65
|
+
### Let your coding agent set it up (recommended)
|
|
66
|
+
|
|
67
|
+
> Install and configure Aikito from https://github.com/lsaint/aikito. Read the
|
|
68
|
+
> README, `templates/skills/aikito/SKILL.md`, and any linked documentation relevant to the
|
|
69
|
+
> setup, then follow their safety requirements to initialize the workspace,
|
|
70
|
+
> synchronize resources with `aikito sync`, and verify the result with `aikito status`.
|
|
71
|
+
> Before importing or changing any existing Agent configuration, show me the
|
|
72
|
+
> planned changes and conflicts and wait for my approval. When setup is
|
|
73
|
+
> complete, summarize what is ready and guide me through the next step, including
|
|
74
|
+
> whether to register my first code project. Do not register a project without
|
|
75
|
+
> my confirmation.
|
|
76
|
+
|
|
77
|
+
<details>
|
|
78
|
+
<summary>Install manually (macOS / Linux / Windows)</summary>
|
|
79
|
+
|
|
80
|
+
On macOS or Linux with Homebrew:
|
|
81
|
+
|
|
82
|
+
```bash
|
|
83
|
+
brew install lsaint/tap/aikito
|
|
84
|
+
aikito init workspace ~/aikito
|
|
85
|
+
aikito sync --dry-run
|
|
86
|
+
aikito sync
|
|
87
|
+
aikito status
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
Review the preview before applying synchronization. For existing configuration,
|
|
91
|
+
see [migration and safety](#migration-and-safety).
|
|
92
|
+
|
|
93
|
+
On Windows, use the [PowerShell installation guide](docs/installation.md#install-manually).
|
|
94
|
+
|
|
95
|
+
</details>
|
|
96
|
+
|
|
97
|
+
Continue with the **[four-step tutorial](docs/installation.md)** to connect your
|
|
98
|
+
first project and verify an instruction. For other tasks, use
|
|
99
|
+
[Agent Request Examples](docs/agent-workflow.md).
|
|
100
|
+
|
|
101
|
+
## See the Result
|
|
102
|
+
|
|
103
|
+
`aikito status` shows resource state across agents. Example output from a
|
|
104
|
+
configured workspace (agents and counts depend on your setup):
|
|
105
|
+
|
|
106
|
+
```text
|
|
107
|
+
┌───────────────────────┬──────────────┬────────┬────────────┬───────────┐
|
|
108
|
+
│ Agent │ Instructions │ Skills │ MCP Config │ Subagents │
|
|
109
|
+
├───────────────────────┼──────────────┼────────┼────────────┼───────────┤
|
|
110
|
+
│ Codex │ ✓ │ 2 › │ 0 │ 0 │
|
|
111
|
+
│ Claude Code │ ✓ │ 2 » │ 0 │ 0 │
|
|
112
|
+
│ Antigravity CLI │ ✓ │ 2 » │ 0 │ 0 │
|
|
113
|
+
│ OpenCode │ ✓ │ 2 › │ 0 │ 0 │
|
|
114
|
+
│ GitHub Copilot CLI │ ✓ │ 2 › │ 0 │ 0 │
|
|
115
|
+
│ DeepSeek Harness │ ✓ │ 2 › │ 0 │ 0 │
|
|
116
|
+
│ Grok Build │ ✓ │ 2 › │ 0 │ 0 │
|
|
117
|
+
│ Pi │ ✓ │ 2 › │ – │ – │
|
|
118
|
+
└───────────────────────┴──────────────┴────────┴────────────┴───────────┘
|
|
119
|
+
|
|
120
|
+
✓ all synced · 8 agents · 2 skills · 0 notes across 1 scopes
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
`aikito show memory` lists retained knowledge by scope. This separate example
|
|
124
|
+
shows one global note and two notes for project `example`:
|
|
125
|
+
|
|
126
|
+
```text
|
|
127
|
+
┌─────────┬───────────────────┬──────────────────────────────┬───────┬──────┐
|
|
128
|
+
│ Scope │ Note File │ Title │ Index │ Link │
|
|
129
|
+
├─────────┼───────────────────┼──────────────────────────────┼───────┼──────┤
|
|
130
|
+
│ Global │ writing-style │ Keep explanations concise │ ✓ │ – │
|
|
131
|
+
├─────────┼───────────────────┼──────────────────────────────┼───────┼──────┤
|
|
132
|
+
│ example │ api-retry-policy │ Retry external APIs safely │ ✓ │ ✓ │
|
|
133
|
+
│ example │ release-checklist │ Release verification steps │ ✓ │ ✓ │
|
|
134
|
+
└─────────┴───────────────────┴──────────────────────────────┴───────┴──────┘
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
Global notes hold cross-project knowledge; project notes hold local decisions.
|
|
138
|
+
See [memory operations](docs/durable-memory.md#list-memory) for the full workflow.
|
|
139
|
+
|
|
140
|
+
Use [synchronization troubleshooting](docs/troubleshooting.md) to investigate
|
|
141
|
+
missing links, conflicts, or drift. Prefer a browser view? Run
|
|
142
|
+
[`aikito web`](docs/cli-reference.md#aikito-web) for the local, read-only Console.
|
|
143
|
+
|
|
144
|
+
## Boundaries
|
|
145
|
+
|
|
146
|
+
Aikito uses plain files and Git, with no background service required.
|
|
147
|
+
|
|
148
|
+
<details>
|
|
149
|
+
<summary>What Aikito does not do</summary>
|
|
150
|
+
|
|
151
|
+
- capture every agent action or conversation automatically
|
|
152
|
+
- run a vector store, embedding pipeline, or memory service
|
|
153
|
+
- inject context into every prompt through a background daemon
|
|
154
|
+
- orchestrate supervisor and worker agents
|
|
155
|
+
- replace your coding agent's native runtime
|
|
156
|
+
|
|
157
|
+
</details>
|
|
158
|
+
|
|
159
|
+
## Migration and Safety
|
|
160
|
+
|
|
161
|
+
Already have agent configuration? Run `aikito adopt` for a read-only import
|
|
162
|
+
preview. Review the plan before applying it; see
|
|
163
|
+
[adoption and backups](docs/safety.md#adoption).
|
|
164
|
+
|
|
165
|
+
Your workspace is a local Git repository. Review it for secrets and private
|
|
166
|
+
data before publishing; removing a secret in a later commit does not erase it
|
|
167
|
+
from history. Read the [safety model](docs/safety.md) and report vulnerabilities
|
|
168
|
+
through the [Security Policy](SECURITY.md).
|
|
169
|
+
|
|
170
|
+
## Documentation
|
|
171
|
+
|
|
172
|
+
- [Getting started](docs/installation.md): installation through your first working instruction.
|
|
173
|
+
- [Workspace and synchronization](docs/architecture.md): source files, scopes, and resource ownership.
|
|
174
|
+
- [Connect another machine](docs/workspace-portability.md): existing workspaces and custom paths.
|
|
175
|
+
- [CLI reference](docs/cli-reference.md): commands and shell completion.
|
|
176
|
+
- [Comparison](docs/comparison.md) and [FAQ](docs/faq.md): design choices and common questions.
|
|
177
|
+
|
|
178
|
+
[Chat Distiller](https://github.com/lsaint/chat-distiller) can turn browser AI
|
|
179
|
+
conversations into Markdown notes in your Aikito Inbox. See the
|
|
180
|
+
[capture and review workflow](docs/chat-distiller.md).
|
|
181
|
+
|
|
182
|
+
Browse the full [documentation site](https://lsaint.github.io/aikito/) for more.
|
|
183
|
+
|
|
184
|
+
## Support
|
|
185
|
+
|
|
186
|
+
If you find Aikito useful, you can [support its development](https://lsaint.github.io/donation/?utm_source=github&utm_medium=readme&utm_campaign=aikito).
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["hatchling"]
|
|
3
|
+
build-backend = "hatchling.build"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "aikito"
|
|
7
|
+
dynamic = ["version"]
|
|
8
|
+
description = "Durable workspace for governing context across AI agents"
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
license = "MIT"
|
|
11
|
+
license-files = ["LICENSE"]
|
|
12
|
+
requires-python = ">=3.12"
|
|
13
|
+
authors = [{ name = "lsaint" }]
|
|
14
|
+
dependencies = []
|
|
15
|
+
|
|
16
|
+
[project.urls]
|
|
17
|
+
Homepage = "https://github.com/lsaint/aikito"
|
|
18
|
+
Repository = "https://github.com/lsaint/aikito"
|
|
19
|
+
Documentation = "https://github.com/lsaint/aikito/blob/main/docs/README.md"
|
|
20
|
+
Issues = "https://github.com/lsaint/aikito/issues"
|
|
21
|
+
Changelog = "https://github.com/lsaint/aikito/blob/main/CHANGELOG.md"
|
|
22
|
+
|
|
23
|
+
[project.scripts]
|
|
24
|
+
aikito = "aikito.cli:main"
|
|
25
|
+
|
|
26
|
+
[tool.hatch.version]
|
|
27
|
+
path = "src/aikito/__init__.py"
|
|
28
|
+
|
|
29
|
+
[tool.hatch.build.targets.wheel]
|
|
30
|
+
packages = ["src/aikito"]
|
|
31
|
+
|
|
32
|
+
[tool.hatch.build.targets.sdist]
|
|
33
|
+
include = [
|
|
34
|
+
"/src",
|
|
35
|
+
"/tests",
|
|
36
|
+
"/README.md",
|
|
37
|
+
"/LICENSE",
|
|
38
|
+
"/pyproject.toml",
|
|
39
|
+
]
|
|
40
|
+
|
|
41
|
+
[tool.pytest.ini_options]
|
|
42
|
+
pythonpath = ["src"]
|
|
43
|
+
testpaths = ["tests"]
|
|
44
|
+
|
|
45
|
+
[tool.ruff]
|
|
46
|
+
target-version = "py312"
|
|
47
|
+
line-length = 88
|
|
48
|
+
|
|
49
|
+
[tool.ruff.lint]
|
|
50
|
+
# E402 (module import not at top) appears in legacy files; keep it enabled so
|
|
51
|
+
# new violations stand out, but tests get a free sys.path via pytest pythonpath.
|
|
52
|
+
ignore = []
|