project-athena 0.1.0
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.
- package/LICENSE +21 -0
- package/README.md +247 -0
- package/dist/cli.js +8614 -0
- package/dist/cli.js.map +1 -0
- package/dist/web/assets/Editor-DmFaONG7.js +39 -0
- package/dist/web/assets/_basePickBy-QJXUw_pr.js +1 -0
- package/dist/web/assets/_baseUniq-DR4vVjyC.js +1 -0
- package/dist/web/assets/abnfDiagram-O67JEVCF-BEaDGLKl.js +1 -0
- package/dist/web/assets/arc-DgcGdgmL.js +1 -0
- package/dist/web/assets/architecture-7GRP2DOG-CHNxu4zI.js +1 -0
- package/dist/web/assets/architectureDiagram-NJMV4G6O-Cr_YqU4C.js +36 -0
- package/dist/web/assets/array-BifhSqXX.js +1 -0
- package/dist/web/assets/blockDiagram-BEXU5L5S-NA64lNxM.js +140 -0
- package/dist/web/assets/c4Diagram-YGBWAQC7-C9OZTI8T.js +38 -0
- package/dist/web/assets/channel-D_T5GGJX.js +1 -0
- package/dist/web/assets/chunk-2Q5K7J3B-C1jixKkw.js +1 -0
- package/dist/web/assets/chunk-3FUC2YCW-PivwegVV.js +2 -0
- package/dist/web/assets/chunk-5DYCD2WN-DH_dVKgx.js +1 -0
- package/dist/web/assets/chunk-5VM5RSS4-ZNzvKenW.js +15 -0
- package/dist/web/assets/chunk-742MDFTN-DTR6iTOw.js +1 -0
- package/dist/web/assets/chunk-7INBJB4K-XeJOzIDQ.js +62 -0
- package/dist/web/assets/chunk-7M6MHVWA-Bn-cXg0l.js +213 -0
- package/dist/web/assets/chunk-7PRAP22T-CPe5zfLc.js +1 -0
- package/dist/web/assets/chunk-DUW6YSOI-Dgx8z5s3.js +1 -0
- package/dist/web/assets/chunk-FOHPRMQF-DzxwRta7.js +161 -0
- package/dist/web/assets/chunk-GTNCS2PH-DSn-mpqy.js +88 -0
- package/dist/web/assets/chunk-GWA4HPMP-DE4DJkth.js +1 -0
- package/dist/web/assets/chunk-J5ZVWO5B-oDCd-gWO.js +1 -0
- package/dist/web/assets/chunk-JWPE2WC7-DVXcaiue.js +1 -0
- package/dist/web/assets/chunk-MBY4JIJT-9uaOqseW.js +72 -0
- package/dist/web/assets/chunk-NETBCI7D-bxqe7jPe.js +1 -0
- package/dist/web/assets/chunk-O7XYJQB3-CjZQSnt8.js +126 -0
- package/dist/web/assets/chunk-UA2S7LBM-BfYbPxwY.js +1 -0
- package/dist/web/assets/chunk-WEXAMYUT-CT8bG5L7.js +1 -0
- package/dist/web/assets/chunk-XXDRQBXY-BvKO0v-W.js +1 -0
- package/dist/web/assets/chunk-Y2CYZVJY-DsF7k-Jl.js +1 -0
- package/dist/web/assets/chunk-Z7XXMR3K-CHWuLoFG.js +10 -0
- package/dist/web/assets/chunk-ZIGJFQKS-C6SOqBs6.js +2 -0
- package/dist/web/assets/classDiagram-v2-NBCMYWYE-CrSxkUNF.js +217 -0
- package/dist/web/assets/cose-bilkent-JH36ORCC-COXSdE6a.js +1 -0
- package/dist/web/assets/cynefin-OW5HDTMX-CMbTYwga.js +1 -0
- package/dist/web/assets/cynefinDiagram-VND7K2PF-B8wb03CF.js +62 -0
- package/dist/web/assets/cytoscape.esm-Yq6u8L66.js +321 -0
- package/dist/web/assets/dagre-6A5THRUB-Bz-BHtjW.js +4 -0
- package/dist/web/assets/defaultLocale-BFoDCU3G.js +1 -0
- package/dist/web/assets/diagram-22UHCM2B-C9M-mcex.js +200 -0
- package/dist/web/assets/diagram-3UASUU5V-q18RgATq.js +24 -0
- package/dist/web/assets/diagram-ATOU4E4O-zywdDXPc.js +3 -0
- package/dist/web/assets/diagram-CDSNMT55-BGMdofKO.js +30 -0
- package/dist/web/assets/diagram-MLGK6HIB-BdT0J6Xl.js +24 -0
- package/dist/web/assets/diagram-MPIPVDR6-BXdFmdOp.js +41 -0
- package/dist/web/assets/dist-B_J_HbC0.js +1 -0
- package/dist/web/assets/ebnfDiagram-ZINNZB2B-B7Mz8zd0.js +1 -0
- package/dist/web/assets/elk-276RUBZZ-CQ4lVw-r.js +27 -0
- package/dist/web/assets/erDiagram-OPXOYQCR-DmmZBLvC.js +99 -0
- package/dist/web/assets/eventmodeling-NTZA5JFV-BgPhBkRf.js +1 -0
- package/dist/web/assets/flowDiagram-KWPJA3E3-C3wNriu7.js +1 -0
- package/dist/web/assets/ganttDiagram-FUAMR5RP-B0egPzgH.js +292 -0
- package/dist/web/assets/gitGraph-4MIJSDKK-BdShI4JY.js +1 -0
- package/dist/web/assets/gitGraphDiagram-X574FWY7-jwG6nUmP.js +106 -0
- package/dist/web/assets/graphlib-C9Tl7QrK.js +1 -0
- package/dist/web/assets/index-BSiW3yI1.js +45 -0
- package/dist/web/assets/index-DKE3ojTe.css +1 -0
- package/dist/web/assets/info-A6RAGUB7-Hm3KO-lX.js +1 -0
- package/dist/web/assets/infoDiagram-VRGFBTTK-CdcggvNW.js +2 -0
- package/dist/web/assets/init-C-OQMol4.js +1 -0
- package/dist/web/assets/ishikawaDiagram-OU5B5YK6-C8x3tV6X.js +70 -0
- package/dist/web/assets/journeyDiagram-ZHPQQLJL-CLXIkiwl.js +139 -0
- package/dist/web/assets/kanban-definition-PNTS6WVX-P94klDAy.js +89 -0
- package/dist/web/assets/katex-ZlcWpGUi.js +257 -0
- package/dist/web/assets/line-DtGZCXZs.js +1 -0
- package/dist/web/assets/linear-BUnzfXgk.js +1 -0
- package/dist/web/assets/mermaid-parser.core-Du2mcMMx.js +7 -0
- package/dist/web/assets/mermaid.core-B4zgSyXF.js +44 -0
- package/dist/web/assets/mindmap-definition-NLK3R4M7-C0EF7lWr.js +96 -0
- package/dist/web/assets/ordinal-BDEzSJ7C.js +1 -0
- package/dist/web/assets/packet-AYTQ26CC-SJ1tKR5t.js +1 -0
- package/dist/web/assets/path-fybaL0A-.js +1 -0
- package/dist/web/assets/pegDiagram-GJSIUBJH-Dek_S7Z0.js +1 -0
- package/dist/web/assets/pie-WAS4IAKB-C0wgWLu4.js +1 -0
- package/dist/web/assets/pieDiagram-5QR66LMP-Dy1jV_P-.js +39 -0
- package/dist/web/assets/quadrantDiagram-O4NWA36T-Df6Jl4OG.js +7 -0
- package/dist/web/assets/radar-RG4KPBEZ-BCtk017a.js +1 -0
- package/dist/web/assets/railroad-74A4TZTK-_ZAooQok.js +1 -0
- package/dist/web/assets/railroad-abnf-HS5TGJTU-Bacbbg7g.js +1 -0
- package/dist/web/assets/railroad-ebnf-LZEXJU2U-Cb23oOsU.js +1 -0
- package/dist/web/assets/railroad-peg-WCYAUIDC-EPh5LyCw.js +1 -0
- package/dist/web/assets/railroadDiagram-XR7U4H2S-DNraioKj.js +1 -0
- package/dist/web/assets/requirementDiagram-PLB6GJNP-C09s8xl6.js +84 -0
- package/dist/web/assets/rolldown-runtime-Dd_uD5pT.js +1 -0
- package/dist/web/assets/rough.esm-Dy-Kn_BL.js +1 -0
- package/dist/web/assets/sankeyDiagram-IPEJSGJF-cwVwdash.js +40 -0
- package/dist/web/assets/sequenceDiagram-PO4LG4MO-Uz6m2m-d.js +169 -0
- package/dist/web/assets/sizeCapture-INFHLROL-3uHXrFqA.js +1 -0
- package/dist/web/assets/src-oBChb5qS.js +1 -0
- package/dist/web/assets/stateDiagram-v2-GCMORJYK-DASY_MN7.js +291 -0
- package/dist/web/assets/swimlanes-2SLR337P-DjbxDj0Z.js +1 -0
- package/dist/web/assets/swimlanesDiagram-TC7HE7FX-Bv90z5my.js +8 -0
- package/dist/web/assets/timeline-definition-EJHVYXUP-Dffxj5AG.js +120 -0
- package/dist/web/assets/treeView-Q6P3EWNA-CXAvuG6A.js +1 -0
- package/dist/web/assets/treemap-WGGIJYW6-D_BSE2GX.js +1 -0
- package/dist/web/assets/usecaseDiagram-POWQR4AR-CKcfbpDB.js +328 -0
- package/dist/web/assets/vennDiagram-UO4OBE2U-DkJknm_I.js +34 -0
- package/dist/web/assets/wardley-WFR3VGLG-Drx6WB-t.js +1 -0
- package/dist/web/assets/wardleyDiagram-VNRHLVJA-fdjd5am3.js +78 -0
- package/dist/web/assets/xychartDiagram-PMCCYNJV-DCWTWMv0.js +7 -0
- package/dist/web/favicon.svg +1 -0
- package/dist/web/index.html +17 -0
- package/package.json +77 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 Athena contributors
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
# Athena
|
|
2
|
+
|
|
3
|
+
**Project intelligence for AI coding agents.**
|
|
4
|
+
|
|
5
|
+
Athena analyzes your repository and maintains a structured, human-readable understanding of it in `.athena/`: architecture, database, API, auth, security, testing, deployment, and your own project rules. It then points Claude Code, Cursor, Antigravity and other agents at that knowledge, so they plan and change code with real project context.
|
|
6
|
+
|
|
7
|
+
Athena doesn't replace your coding agent, and it doesn't claim to make code bug-free or secure. It makes agents more **project-aware**, and it is honest about what it knows.
|
|
8
|
+
|
|
9
|
+
```bash
|
|
10
|
+
npm install -g project-athena # requires Node.js >= 22.12
|
|
11
|
+
cd my-project
|
|
12
|
+
athena init
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
## What you get
|
|
16
|
+
|
|
17
|
+
```text
|
|
18
|
+
.athena/
|
|
19
|
+
├── project.md technologies, structure, entry points, commands
|
|
20
|
+
├── architecture.md layers, workspace modules, service topology (Mermaid)
|
|
21
|
+
├── database.md engines, entities, relations, indexes, migrations
|
|
22
|
+
├── api.md detected endpoints and API specs
|
|
23
|
+
├── auth.md auth libraries/providers, tokens, roles
|
|
24
|
+
├── security.md attack surface, controls, potential secrets (no values)
|
|
25
|
+
├── testing.md frameworks, commands, structural gaps
|
|
26
|
+
├── debugging.md commands, logging, change hotspots
|
|
27
|
+
├── performance.md caching, queues, database notes
|
|
28
|
+
├── code-review.md project-specific review checklist
|
|
29
|
+
├── deployment.md containers, CI/CD, hosting, env var names
|
|
30
|
+
├── rules.md your rules — agents are told to follow them
|
|
31
|
+
└── state.json local analysis cache
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
Every statement is labeled:
|
|
35
|
+
|
|
36
|
+
| Label | Meaning |
|
|
37
|
+
|---|---|
|
|
38
|
+
| `FACT` | Declared (e.g. manifest) or asserted by a developer |
|
|
39
|
+
| `DETECTED` | Found by analysis, with file/line evidence |
|
|
40
|
+
| `INFERRED` | Heuristic. Verify before relying on it |
|
|
41
|
+
| `UNKNOWN` | Athena looked and could not tell |
|
|
42
|
+
|
|
43
|
+
Example: *"Redis — DETECTED (package.json)"* followed by *"Cache strategy and invalidation rules: UNKNOWN"*. It never says *"sessions are stored in Redis"* unless the code shows it.
|
|
44
|
+
|
|
45
|
+
## Your edits are safe
|
|
46
|
+
|
|
47
|
+
Generated content sits between `athena:generated` markers. Anything outside the markers, including each document's **Developer Notes**, is never touched. If you edit inside a marker, Athena keeps your version and tells you. `athena analyze --force` regenerates it. `rules.md` is yours alone after creation.
|
|
48
|
+
|
|
49
|
+
## Commands
|
|
50
|
+
|
|
51
|
+
| Command | |
|
|
52
|
+
|---|---|
|
|
53
|
+
| `athena init` | Analyze and create `.athena/`. Configures detected agents plus `AGENTS.md` (`--agents all`, `--no-agents`, `--dry-run`) |
|
|
54
|
+
| `athena analyze` | Refresh knowledge; preserves your edits (`--force` to regenerate) |
|
|
55
|
+
| `athena status` | Knowledge health, file changes since the last analysis, potentially affected documents |
|
|
56
|
+
| `athena sync` | Show which documents would change and why (with diffs), then apply after confirmation (`--yes`, `--dry-run`, `--diff`, `--check` for CI) |
|
|
57
|
+
| `athena watch` | Watch the project and propose updates as files change (`--auto-apply` to write automatically) |
|
|
58
|
+
| `athena doctor` | Check the installation, project, knowledge files and agent integrations |
|
|
59
|
+
| `athena rules` | `list`, `add "<rule>" --section <name>`, `edit`, `enable`, `disable`, `remove` |
|
|
60
|
+
| `athena agents` | `list`, `add <claude-code\|cursor\|antigravity\|agents-md\|all>`, `remove` |
|
|
61
|
+
| `athena activity` | Show AI agent activity observed through hooks (`-n`, `--agent`) |
|
|
62
|
+
| `athena security` | Audit dependencies with the tools installed for this project, and report secret findings (`--fail-on`, `--last`, `--no-audit`) |
|
|
63
|
+
| `athena review` | Check the current diff for facts worth reviewing, and list your rules and checklist (`--base`, `--no-fail`) |
|
|
64
|
+
| `athena context <task>` | Show which knowledge an agent should read for a task (`--full`, `--json`) |
|
|
65
|
+
| `athena graph` | Inspect the project graph (`--build`, `--search`, `--node`, `--kind`) |
|
|
66
|
+
| `athena mcp` | Serve project intelligence to agents over MCP (stdio; `--allow-write`) |
|
|
67
|
+
| `athena ai` | `status`, `enrich` — optional AI suggestions (`--consent`, `--dry-run`) |
|
|
68
|
+
| `athena open` | Start (or reuse) the local web UI on `127.0.0.1`, watch for changes, and open it (`--port`, `--no-open`, `--no-watch`) |
|
|
69
|
+
| `athena clean` | Remove `.athena/` and Athena integration blocks |
|
|
70
|
+
|
|
71
|
+
Global flags: `--json`, `--quiet`, `--cwd <dir>`, `--no-color`.
|
|
72
|
+
|
|
73
|
+
They print *Not available yet* and exit with code 2. See [docs/ROADMAP.md](docs/ROADMAP.md).
|
|
74
|
+
|
|
75
|
+
## Keeping knowledge in sync
|
|
76
|
+
|
|
77
|
+
```text
|
|
78
|
+
$ athena sync
|
|
79
|
+
|
|
80
|
+
Changes since last analysis
|
|
81
|
+
2 files (1 modified · 1 added)
|
|
82
|
+
Git: 1 new commit
|
|
83
|
+
|
|
84
|
+
Detected project changes
|
|
85
|
+
• API routes: 1 route added (POST /refunds)
|
|
86
|
+
• Database schema: 2 entities added (Book, Chapter)
|
|
87
|
+
|
|
88
|
+
Knowledge to update
|
|
89
|
+
~ api.md +4 −3 endpoints
|
|
90
|
+
→ API routes: 1 route added (POST /refunds)
|
|
91
|
+
~ database.md +25 −4 technology, schema
|
|
92
|
+
→ Database schema: 2 entities added (Book, Chapter)
|
|
93
|
+
Checked and unchanged: deployment.md
|
|
94
|
+
|
|
95
|
+
Apply updates to 2 documents? [y/N]
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
- **Only documents whose content would actually change are proposed.** Athena re-analyzes (reusing hashes of unchanged files), compares the structured project model with the previous one, renders documents in memory, and diffs them against disk.
|
|
99
|
+
- **Reasons come from evidence:** which parts of the model changed (routes, schema, dependencies, env vars, CI…), plus which kinds of files changed. Renames are detected by content, and Git commits and branch switches since the last analysis are shown.
|
|
100
|
+
- **Nothing is written without review.** `athena watch` and the web UI only propose updates. You can apply or ignore a proposal (an ignored proposal stays quiet until the files change again), or opt in to `--auto-apply`.
|
|
101
|
+
- **Your edits are still safe.** Developer-edited sections are preserved and listed. Applying is refused if a document changed after the proposal was made.
|
|
102
|
+
- When files change but no knowledge is affected, only the local index is refreshed.
|
|
103
|
+
- `athena sync --check` exits with 1 when knowledge is out of date, which is useful in CI or a pre-commit hook.
|
|
104
|
+
- Ignore rules: defaults, root and nested `.gitignore` files, `.git/info/exclude`, and `.athena/config.json`.
|
|
105
|
+
|
|
106
|
+
## Watching what agents do
|
|
107
|
+
|
|
108
|
+
Athena configures hooks for agents that support them, so it can show what they actually did:
|
|
109
|
+
|
|
110
|
+
| Agent | Mechanism |
|
|
111
|
+
|---|---|
|
|
112
|
+
| Claude Code | Hooks in `.claude/settings.json` running `athena event` (async, so the agent is never blocked) |
|
|
113
|
+
| Cursor | Hooks in `.cursor/hooks.json` plus a small forwarding script |
|
|
114
|
+
| Antigravity | No documented hook mechanism — activity is reported as unavailable |
|
|
115
|
+
|
|
116
|
+
Hooks append events to `.athena/.agent-events.jsonl` (gitignored, rotated, no network). The UI tails that file, so activity shows up live and history survives with the UI closed.
|
|
117
|
+
|
|
118
|
+
```text
|
|
119
|
+
$ athena activity
|
|
120
|
+
20:03:58 ● claude-code · Editing src/components/Pricing.tsx
|
|
121
|
+
20:04:07 ● claude-code · Running tests: npm test -- billing
|
|
122
|
+
20:04:31 ● claude-code · Finished responding
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
**What Athena can and cannot see.** It records which tool ran, on which files, and when. It never records the agent's reasoning, and prompt text is not stored. Secrets in commands are redacted, and paths are stored project-relative. When no hook has fired, Athena says nothing about whether an agent is running.
|
|
126
|
+
|
|
127
|
+
## Security and review
|
|
128
|
+
|
|
129
|
+
```bash
|
|
130
|
+
athena security # audit dependencies + report secret findings
|
|
131
|
+
athena security --fail-on high # exit 1 in CI
|
|
132
|
+
athena review # check the current diff before you commit
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
**`athena security`** runs the audit tools your project's ecosystems provide (`npm audit`, `pnpm audit`, `pip-audit`, `govulncheck`, `cargo audit`, `composer audit`) and reports what they find, attributed to the tool. Athena has no vulnerability database of its own: a tool that isn't installed is reported as **unknown**, never as "no problems". Results are stored in `.athena/security-scan.json` and recorded in `security.md` on the next `athena sync`.
|
|
136
|
+
|
|
137
|
+
**`athena review`** checks facts about your current diff: secrets in added lines (a blocker, exit 1), committed env files, new dependencies, source changed without tests, API/schema/auth touchpoints, large files, debug leftovers, and whether Athena knowledge is stale. It then lists your enabled rules and the project's review checklist for you or your agent to apply — Athena does not claim to judge whether they are met, and it runs no AI.
|
|
138
|
+
|
|
139
|
+
## Context engine, graph and MCP
|
|
140
|
+
|
|
141
|
+
Reading twelve documents for every task wastes an agent's context. Athena picks what matters:
|
|
142
|
+
|
|
143
|
+
```text
|
|
144
|
+
$ athena context "add refunds to the payments API"
|
|
145
|
+
|
|
146
|
+
Documents to read
|
|
147
|
+
• api — task mentions "API"
|
|
148
|
+
• database — task mentions "payments" via entity Payment
|
|
149
|
+
• security — security implications of data/API changes
|
|
150
|
+
• testing — tests for changed behavior
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
- **Deterministic.** The same task and project state always produce the same selection, with a stated reason for each document. No AI is involved.
|
|
154
|
+
- **Sections, not whole files.** Only the relevant sections are returned, under a character budget, with your rules always included.
|
|
155
|
+
- **Project graph.** `athena graph --build` writes `.athena/graph.json`: packages, files, routes, entities, frameworks and commands, connected by `contains`, `imports`, `handles`, `defines` and `depends_on`. It comes from the analysis, so it never asserts more than DETECTED evidence.
|
|
156
|
+
|
|
157
|
+
**MCP.** `athena mcp` serves this to any MCP-capable agent over stdio, and `athena agents add` registers it (`.mcp.json` for Claude Code, `.cursor/mcp.json` for Cursor). Tools: `get_relevant_context`, `get_project_context`, `get_architecture`, `get_database_schema`, `get_api_context`, `get_security_context`, `get_project_rules`, `get_knowledge_document`, `get_project_changes`, `get_project_graph`, `get_athena_status`, `update_knowledge`.
|
|
158
|
+
|
|
159
|
+
The server is **read-only by default**: `update_knowledge` reports what would change and refuses to write unless you start it with `--allow-write`.
|
|
160
|
+
|
|
161
|
+
## Optional AI
|
|
162
|
+
|
|
163
|
+
Athena needs no AI: analysis, sync, context and MCP are all deterministic. AI is opt-in for suggestions only.
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
athena ai status # which providers are configured and reachable
|
|
167
|
+
athena ai enrich --dry-run # show exactly what would be sent
|
|
168
|
+
athena ai enrich --consent # ask for suggestions
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
- **Providers:** Anthropic, OpenAI, Google, and Ollama for a fully local setup. Configure in `.athena/config.json` under `"ai"`; API keys come from environment variables only and are never written to disk by Athena.
|
|
172
|
+
- **Consent first.** Nothing leaves your machine without `--consent` (or `"consent": true`). `--dry-run` prints the provider, endpoint, documents and exact size first.
|
|
173
|
+
- **Knowledge only, redacted.** Athena sends your `.athena` documents — never source code — after the secret redactor, and refuses to send anything that still looks like a secret.
|
|
174
|
+
- **Output is INFERRED.** Suggestions land in `.athena/ai-suggestions.md` (gitignored), clearly labeled and attributed to the model. Nothing is added to your knowledge base automatically.
|
|
175
|
+
|
|
176
|
+
## Web UI
|
|
177
|
+
|
|
178
|
+
```bash
|
|
179
|
+
athena open
|
|
180
|
+
```
|
|
181
|
+
|
|
182
|
+
```text
|
|
183
|
+
Athena is running
|
|
184
|
+
|
|
185
|
+
Local: http://127.0.0.1:7432/#token=…
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
The local web UI lets you:
|
|
189
|
+
|
|
190
|
+
- browse every knowledge document, with Mermaid diagrams and labels showing which sections are generated, developer-edited or developer-owned
|
|
191
|
+
- edit documents in a Markdown editor. Saves go straight to `.athena/*.md`. Saving is refused if the file changed on disk meanwhile, or if the content looks like it contains a secret.
|
|
192
|
+
- review proposed knowledge updates on the **Sync** page (reasons, file changes, Git commits, line-by-line diffs), then **Update** or **Ignore**
|
|
193
|
+
- see sync status per document, and re-analyze with one click
|
|
194
|
+
- browse history (from Git commits touching each file)
|
|
195
|
+
- search all knowledge (⌘K)
|
|
196
|
+
- manage rules: add, edit, enable/disable, delete. `rules.md` stays the source of truth.
|
|
197
|
+
- configure or remove agent integrations
|
|
198
|
+
- follow an activity timeline of what Athena actually observed: agent tool use (via hooks), analyses, UI edits, and knowledge files changed on disk
|
|
199
|
+
- run dependency audits from the **Security** page and review findings by severity
|
|
200
|
+
- explore the **Context** page: type a task and see which knowledge an agent would read, and why
|
|
201
|
+
|
|
202
|
+
The robot indicator reflects real work: Athena's own analyses, and — for agents with hooks installed — the agent's current tool use (reading, coding, testing). With no hook events it stays idle and says so, rather than simulating activity.
|
|
203
|
+
|
|
204
|
+
Security: the server binds to `127.0.0.1` only, on the first free port from 7432. Every API call needs the random per-session token from the link, which travels in the URL fragment and is never sent in requests or referrers. Host and Origin headers are checked, a strict Content-Security-Policy applies, and only the fixed set of `.athena` documents can be read or written.
|
|
205
|
+
|
|
206
|
+
## Agent integrations
|
|
207
|
+
|
|
208
|
+
| Agent | What Athena writes |
|
|
209
|
+
|---|---|
|
|
210
|
+
| Claude Code | A marked block in `CLAUDE.md` that imports `.athena/rules.md` |
|
|
211
|
+
| Cursor | `.cursor/rules/athena.mdc` (always applied) |
|
|
212
|
+
| Antigravity | `.agents/rules/athena.md` (set to *Always On* in Antigravity if needed) |
|
|
213
|
+
| Others | A marked block in `AGENTS.md` |
|
|
214
|
+
|
|
215
|
+
The instructions include a **relevance map**. A database task reads `database.md`, `architecture.md`, `api.md`, `security.md`, `testing.md` and `rules.md`, while a styling tweak reads only `project.md`, `architecture.md` and `rules.md`. Agents don't load everything for every task.
|
|
216
|
+
|
|
217
|
+
## Privacy and security
|
|
218
|
+
|
|
219
|
+
- Runs entirely locally, with no network calls and no AI required.
|
|
220
|
+
- Records env var **names** only. `.env` contents are never read.
|
|
221
|
+
- Potential secrets are reported by type and location only, and all output is redacted.
|
|
222
|
+
- See [SECURITY.md](SECURITY.md).
|
|
223
|
+
|
|
224
|
+
## Configuration
|
|
225
|
+
|
|
226
|
+
Optional `.athena/config.json`:
|
|
227
|
+
|
|
228
|
+
```json
|
|
229
|
+
{ "ignore": ["generated/"], "include": [], "maxFileBytes": 1000000, "maxFiles": 200000 }
|
|
230
|
+
```
|
|
231
|
+
|
|
232
|
+
Defaults already ignore `node_modules`, `dist`, `build`, `.venv`, `target`, `coverage` and similar directories, plus your `.gitignore`.
|
|
233
|
+
|
|
234
|
+
## Development
|
|
235
|
+
|
|
236
|
+
```bash
|
|
237
|
+
npm install
|
|
238
|
+
npm run build
|
|
239
|
+
npm test
|
|
240
|
+
node dist/cli.js --help
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
See [docs/ARCHITECTURE.md](docs/ARCHITECTURE.md) and [CONTRIBUTING.md](CONTRIBUTING.md).
|
|
244
|
+
|
|
245
|
+
## License
|
|
246
|
+
|
|
247
|
+
MIT
|