Repo-local execution memory for coding agents
Project description
aictx
Coding agents forget how they worked.
aictx makes their past executions reusable.
It records real execution, stores useful patterns, and reuses successful strategies in later executions inside the same repository.
Why this exists
Most agent workflows start from scratch every time.
aictx allows them to reuse what already worked.
What aictx is
A repo-local execution memory layer for coding agents that records real execution and reuses successful strategies.
- repo-local execution memory
- real execution logging
- reusable strategy memory
- structured execution signal capture with provenance
- failure and repo-area memory
- lightweight runtime guidance and post-task summaries for coding agents
Safety model
AICTX modifies repository files and can optionally install runner integrations.
By default it creates repo-local runtime artifacts only during repo setup, and aictx install does not modify global Codex files.
Global Codex integration requires aictx install --install-codex-global.
Quick start
pip install aictx
aictx install
cd your-repo
aictx init
After aictx init, you can use your coding agent normally in that repo.
Manual aictx commands after initialization are optional:
- the intended flow is
install+init, then agent-driven usage suggest,reflect,reuse, andreport real-usageremain available for inspection, debugging, or manual control- Claude/Codex integration files and hooks added by
initare there to help the agent useaictxautomatically when the runner respects repo instructions
Public CLI
aictx install
aictx init
aictx suggest
aictx reflect
aictx reuse
aictx report real-usage
aictx clean
aictx uninstall
Only install and init are part of the normal setup path.
The rest of the public commands are optional operational commands:
suggest,reflect,reuse-> for manual inspection or explicit agent callsreport real-usage-> for reviewing stored execution dataclean,uninstall-> for removing AICTX-managed content
What aictx does
- records real execution in
.aictx/metrics/execution_logs.jsonl - writes operational feedback in
.aictx/metrics/execution_feedback.jsonl - stores successful and failed strategies in
.aictx/strategy_memory/strategies.jsonl - captures available files, commands, tests, and errors with provenance instead of inventing data
- stores repo-local failure patterns and area memory for later debugging/context
- reuses only successful strategies during later executions
- returns
agent_summaryandagent_summary_textafter finalize; agents must appendagent_summary_textto final user responses for non-trivial tasks - exposes small JSON commands for runtime guidance
- does not scaffold knowledge mods or cross-repo/global metrics in v3
What AICTX modifies
Repo-local:
.aictx/- AICTX-managed blocks in
AGENTS.mdandCLAUDE.md .claude/settings.jsonmerged AICTX hook entries.claude/hooks/aictx_*.py.gitignoreentries for AICTX runtime paths
Optional global:
~/.codex/AGENTS.override.md~/.codex/config.toml
Global Codex files are only updated when --install-codex-global is passed.
Idempotency guarantees
aictx initis non-destructive for existing AICTX execution logs and strategy memory- existing
.aictx/metrics/*.jsonland.aictx/strategy_memory/*.jsonlfiles are preserved .claude/settings.jsonis merged, not overwritten- AICTX-managed Markdown blocks and hooks are idempotent
aictx initdoes not delete legacy non-AICTX paths
What aictx does NOT do
aictx does not optimize your agent. aictx does not guarantee better performance.
It makes past executions observable and reusable.
Who this is for
- engineers using coding agents repeatedly in the same repository
- teams that want repo-local execution history and reusable strategies
- users who prefer traceable artifacts over heuristic-heavy automation
Who this is not for
- users expecting guaranteed productivity gains
- teams looking for a full orchestration platform
- workflows that do not preserve repo-level instructions or execution discipline
Runtime loop
prepare_execution()loads prior successful strategies and may attachexecution_hint- the agent executes
finalize_execution()records logs, feedback, strategy memory, andagent_summary_text- the agent appends
agent_summary_textto the final user response; if unavailable, it saysAICTX summary unavailable - the next execution can reuse successful strategies and ignore failed ones
Main runtime artifacts
.aictx/
metrics/
execution_logs.jsonl
execution_feedback.jsonl
strategy_memory/
strategies.jsonl
Additional properties
- repo-local artifacts are the source of truth; execution history and strategy memory stay inspectable inside the repository
- failed strategies are stored, but they are excluded from reuse by default
- public operational command outputs are deterministic and machine-readable JSON; internal
run-executionwithout--jsonalso prints the user-facing AICTX summary - AICTX-managed changes can be removed cleanly with
aictx cleanandaictx uninstall
Notes
- file tracking depends on explicit input from the agent/runtime; wrapped execution can capture commands, tests, errors, and edited files best-effort
- strategy reuse is heuristic: matching task type, prompt similarity, overlapping files, primary entry point, commands/tests/errors, and area are preferred, with recency as a secondary signal
- task typing uses explicit metadata first, then deterministic keyword/path inference, then
unknown - capture provenance distinguishes explicit, runtime-observed, heuristic, and unknown signals
- middleware packet generation is not active in the default runtime path
- failed strategies are stored but never reused as hints
- no synthetic benchmarks or estimated improvements are reported
Cleanup
aictx cleanremoves only AICTX-managed content from the current repository: the.aictx/scaffold, AICTX blocks inAGENTS.md/CLAUDE.md, legacy AICTX content inAGENTS.override.mdwhen present, AICTX Claude hooks/settings, and the.gitignoreentry added by AICTXaictx uninstallremoves AICTX-managed content from all registered repositories and removes global AICTX state under~/.aictx, plus AICTX-managed Codex global instructions/config lines- both commands are conservative: they only remove content that AICTX created or marked as AICTX-managed
Possible evolution
The current v1 keeps strategy memory intentionally simple.
Possible future work, based on real usage:
- better file access capture from agent/runtime integrations
- broader runner-native signal capture where supported
- clearer comparison across repeated task categories
- stronger runner-native automation where supported
- richer repo-level reporting built only from real execution history
Not part of the current product contract:
- synthetic benchmarks
- heuristic scores
- guaranteed optimization claims
Read next
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file aictx-3.0.0.tar.gz.
File metadata
- Download URL: aictx-3.0.0.tar.gz
- Upload date:
- Size: 104.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
42dc722d76a4e54730dbb1319eebf1c096560fe4770207e112b130e9eef1de4b
|
|
| MD5 |
d1af7dc04f81c9c8949bb172f2f4b759
|
|
| BLAKE2b-256 |
b8ca2089b071f1e406c7038108d4f81cd83372b897e28f4a9ba083c18b894c0c
|
Provenance
The following attestation bundles were made for aictx-3.0.0.tar.gz:
Publisher:
publish-pypi.yml on oldskultxo/aictx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aictx-3.0.0.tar.gz -
Subject digest:
42dc722d76a4e54730dbb1319eebf1c096560fe4770207e112b130e9eef1de4b - Sigstore transparency entry: 1365377731
- Sigstore integration time:
-
Permalink:
oldskultxo/aictx@f0139fd6c67d9812d835eea7befacfd7150ba886 -
Branch / Tag:
refs/tags/v3.0.0 - Owner: https://github.com/oldskultxo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@f0139fd6c67d9812d835eea7befacfd7150ba886 -
Trigger Event:
push
-
Statement type:
File details
Details for the file aictx-3.0.0-py3-none-any.whl.
File metadata
- Download URL: aictx-3.0.0-py3-none-any.whl
- Upload date:
- Size: 102.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
27bd7216b24010bcf1ae497eca5c9bf5a54e4dde23ea2a1b29a3607ef9dbd787
|
|
| MD5 |
2f4ab2edfdef36e8d96c960af55afea3
|
|
| BLAKE2b-256 |
d26b31700c666f393074425eac8890a6dfc6508373c2264b84348efdea510179
|
Provenance
The following attestation bundles were made for aictx-3.0.0-py3-none-any.whl:
Publisher:
publish-pypi.yml on oldskultxo/aictx
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
aictx-3.0.0-py3-none-any.whl -
Subject digest:
27bd7216b24010bcf1ae497eca5c9bf5a54e4dde23ea2a1b29a3607ef9dbd787 - Sigstore transparency entry: 1365377870
- Sigstore integration time:
-
Permalink:
oldskultxo/aictx@f0139fd6c67d9812d835eea7befacfd7150ba886 -
Branch / Tag:
refs/tags/v3.0.0 - Owner: https://github.com/oldskultxo
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish-pypi.yml@f0139fd6c67d9812d835eea7befacfd7150ba886 -
Trigger Event:
push
-
Statement type: