@aitne-sh/aitne 0.1.3 → 0.1.4

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.
Files changed (87) hide show
  1. package/README.md +151 -147
  2. package/agent-assets/agent-profiles/conversational.md +23 -1
  3. package/agent-assets/agent-profiles/observer.md +15 -0
  4. package/agent-assets/agent-profiles/routine-fetch-window.md +128 -0
  5. package/agent-assets/agent-profiles/routine.md +16 -0
  6. package/agent-assets/agent-profiles/task.md +15 -0
  7. package/agent-assets/docs/concepts/auth-health.md +25 -9
  8. package/agent-assets/docs/concepts/backends-and-tiers.md +40 -4
  9. package/agent-assets/docs/concepts/costs-and-quotas.md +87 -25
  10. package/agent-assets/docs/concepts/delegated-mode.md +7 -13
  11. package/agent-assets/docs/concepts/memory-model.md +14 -1
  12. package/agent-assets/docs/concepts/observations.md +19 -1
  13. package/agent-assets/docs/concepts/process-keys.md +5 -0
  14. package/agent-assets/docs/concepts/routines.md +22 -10
  15. package/agent-assets/docs/concepts/safety-model.md +3 -8
  16. package/agent-assets/docs/concepts/skills.md +36 -1
  17. package/agent-assets/docs/features/integrations/calendar.md +74 -3
  18. package/agent-assets/docs/features/integrations/git.md +4 -4
  19. package/agent-assets/docs/features/integrations/github.md +75 -107
  20. package/agent-assets/docs/features/lifestyle/git.md +169 -22
  21. package/agent-assets/docs/features/messaging/overview.md +10 -1
  22. package/agent-assets/docs/features/routines/morning-routine.md +1 -1
  23. package/agent-assets/docs/getting-started/01-what-is-this.md +30 -12
  24. package/agent-assets/docs/getting-started/02-first-steps.md +15 -4
  25. package/agent-assets/docs/getting-started/03-what-can-this-do.md +17 -2
  26. package/agent-assets/docs/guides/install-and-run.md +10 -1
  27. package/agent-assets/docs/guides/setup-wizard.md +43 -6
  28. package/agent-assets/docs/guides/switch-default-backend.md +7 -3
  29. package/agent-assets/docs/reference/skills.md +10 -1
  30. package/agent-assets/docs/troubleshooting/auth-failed.md +27 -8
  31. package/agent-assets/docs/troubleshooting/quota-exhausted.md +35 -12
  32. package/agent-assets/skills/context/SKILL.md +6 -0
  33. package/agent-assets/skills/external-services/SKILL.md +4 -0
  34. package/agent-assets/skills/external-services/SKILL.native.claude.md +320 -0
  35. package/agent-assets/skills/external-services/SKILL.native.codex.md +243 -0
  36. package/agent-assets/skills/external-services/SKILL.native.gemini.md +237 -0
  37. package/agent-assets/skills/mail/SKILL.md +42 -14
  38. package/agent-assets/skills/mail/SKILL.native.claude.md +175 -0
  39. package/agent-assets/skills/mail/SKILL.native.codex.md +165 -0
  40. package/agent-assets/skills/mail/SKILL.native.gemini.md +169 -0
  41. package/agent-assets/skills/management-task-modify/SKILL.md +2 -1
  42. package/agent-assets/skills/management-task-stop/SKILL.md +2 -2
  43. package/agent-assets/skills/notify/SKILL.md +4 -4
  44. package/agent-assets/skills/notion/SKILL.md +6 -0
  45. package/agent-assets/skills/notion/SKILL.native.claude.md +202 -0
  46. package/agent-assets/skills/notion/SKILL.native.codex.md +166 -0
  47. package/agent-assets/skills/notion/SKILL.native.gemini.md +167 -0
  48. package/agent-assets/skills/observations/SKILL.md +7 -0
  49. package/agent-assets/skills/project-doc/SKILL.md +6 -0
  50. package/agent-assets/skills/reading/SKILL.md +2 -0
  51. package/agent-assets/skills/roadmap/SKILL.md +7 -0
  52. package/agent-assets/skills/today/SKILL.md +7 -0
  53. package/agent-assets/skills/user-interview/SKILL.md +1 -1
  54. package/agent-assets/skills/user-profile/SKILL.md +7 -0
  55. package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +119 -0
  56. package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +101 -0
  57. package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +113 -0
  58. package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +97 -0
  59. package/agent-assets/task-flows/_partials/notion-acquire.notion.md +104 -0
  60. package/agent-assets/task-flows/git.project.refresh_architecture.md +24 -1
  61. package/agent-assets/task-flows/message.received.dm.md +3 -0
  62. package/agent-assets/task-flows/message.received.dm.native.claude.md +76 -0
  63. package/agent-assets/task-flows/message.received.dm.native.codex.md +57 -0
  64. package/agent-assets/task-flows/message.received.dm.native.gemini.md +70 -0
  65. package/agent-assets/task-flows/message.received.dm_first.md +3 -0
  66. package/agent-assets/task-flows/message.received.dm_first.native.claude.md +56 -0
  67. package/agent-assets/task-flows/message.received.dm_first.native.codex.md +48 -0
  68. package/agent-assets/task-flows/message.received.dm_first.native.gemini.md +54 -0
  69. package/agent-assets/task-flows/routine.evening_review.md +28 -1
  70. package/agent-assets/task-flows/routine.fetch_window.md +93 -0
  71. package/agent-assets/task-flows/routine.hourly_check.md +44 -5
  72. package/agent-assets/task-flows/routine.monthly_review.md +13 -2
  73. package/agent-assets/task-flows/routine.morning_routine.md +55 -42
  74. package/agent-assets/task-flows/routine.morning_routine_initial.md +37 -38
  75. package/agent-assets/task-flows/routine.roadmap_refresh.md +38 -46
  76. package/agent-assets/task-flows/routine.today_refresh.md +53 -96
  77. package/agent-assets/task-flows/routine.weekly_review.md +40 -17
  78. package/agent-assets/task-flows/scheduled.dm.md +13 -11
  79. package/agent-assets/task-flows/scheduled.task.md +2 -2
  80. package/agent-assets/task-flows/setup.initial.md +5 -4
  81. package/agent-assets/task-flows/setup.update.md +1 -1
  82. package/agent-assets/templates/README.md +13 -6
  83. package/package.json +4 -4
  84. package/scripts/regen-skill-fixtures.mjs +39 -0
  85. package/agent-assets/task-flows/routine.hourly_check.delegated.claude.md +0 -405
  86. package/agent-assets/task-flows/routine.hourly_check.delegated.codex.md +0 -400
  87. package/agent-assets/task-flows/routine.hourly_check.delegated.gemini.md +0 -404
@@ -10,12 +10,17 @@ aliases:
10
10
  - daily git management
11
11
  - git triggers
12
12
  - repo polling cadence
13
+ - refresh architecture
14
+ - architecture refresh
15
+ - repository overview
16
+ - repository readme mirror
13
17
  category: features
14
18
  summary: |
15
19
  The /git page (sidebar: My Life › Git) is the per-repository control
16
20
  surface: override polling cadence, define event-driven triggers, and
17
- enable daily git management (overview MD + per-day journal entry) for
18
- each registered repository.
21
+ enable daily git management a deep AI-generated architecture
22
+ analysis (refreshable on demand), a per-day journal of activity, a
23
+ mirrored copy of the source README, and a curated overview document.
19
24
  section: lifestyle
20
25
  tags:
21
26
  - lifestyle
@@ -23,6 +28,7 @@ tags:
23
28
  - github
24
29
  - automation
25
30
  - observation
31
+ - architecture
26
32
  status: stable
27
33
  ask_examples:
28
34
  - What is the My Life › Git page for?
@@ -30,11 +36,17 @@ ask_examples:
30
36
  - Does daily git management need a local clone?
31
37
  - Can the agent poll a GitHub repo with no local checkout?
32
38
  - What's the difference between Polling, Triggers, and Daily git management?
39
+ - What does the Refresh architecture button do?
40
+ - When does the agent regenerate the Architecture section?
41
+ - Does the agent read my README on every scan?
42
+ - Where does the README mirror get written?
33
43
  - Where does the daily journal get written?
34
44
  - What happens if a scan fails repeatedly?
45
+ - Can I run Architecture refresh on a schedule?
46
+ - How much does one Architecture refresh cost?
35
47
  locale: en-US
36
48
  created: 2026-05-05
37
- updated: 2026-05-05
49
+ updated: 2026-05-07
38
50
  keywords:
39
51
  - my life
40
52
  - git
@@ -44,10 +56,14 @@ keywords:
44
56
  - daily git management
45
57
  - overview
46
58
  - journal
59
+ - architecture
60
+ - readme mirror
61
+ - refresh architecture
47
62
  related:
48
63
  - features/integrations/git
49
64
  - features/integrations/github
50
65
  - features/routines/hourly-check
66
+ - guides/refresh-repository-architecture
51
67
  - concepts/observations
52
68
  ui_anchors:
53
69
  - /git
@@ -62,14 +78,17 @@ config_keys:
62
78
 
63
79
  A per-repository control panel for everything Git/GitHub: tighten the
64
80
  polling cadence on a single repo, attach event-driven triggers, and
65
- opt in to **daily git management** (a curated overview MD plus a
66
- once-a-day journal entry).
81
+ opt in to **daily git management** a curated `overview.md` whose
82
+ **Architecture section is generated by an AI agent that reads the
83
+ whole repository**, plus a per-day activity journal and a verbatim
84
+ mirror of the source README.
67
85
 
68
86
  ## What It Does
69
87
 
70
88
  The page lists every repository registered on
71
89
  **Connections → Repositories** and exposes three collapsible sections
72
- per repo:
90
+ per repo (now **all open by default** so the controls are visible at
91
+ a glance):
73
92
 
74
93
  1. **Polling** — overrides the global `gitPollIntervalSeconds` for
75
94
  this repository alone. Useful when one repo is high-traffic and
@@ -81,14 +100,87 @@ per repo:
81
100
  task-flow defaults, not in place of them. Each trigger has a
82
101
  workdir mode (`local-clone` or `ephemeral`); local-clone triggers
83
102
  require the repository to have a `localPath`.
84
- 3. **Daily git management** — opt-in per repo. When enabled, the
85
- `repository-management-cron` observer fires `git.project.update`
86
- roughly once every 24 hours. The session writes/refreshes a
87
- curated `git/<slug>/overview.md` and appends a per-day entry under
88
- `git/<slug>/journal/YYYY-MM-DD.md` if there was activity.
103
+ 3. **Daily git management** — opt-in per repo. Enabling it does three
104
+ distinct kinds of work, on different cadences:
105
+ - On the first **Run init now** click, writes the curated
106
+ `git/<slug>/overview.md` skeleton, mirrors the source `README.*`
107
+ to `git/<slug>/README.md`, and **automatically queues a
108
+ one-shot Architecture refresh** so the AI agent fills in the
109
+ deep Architecture section for you.
110
+ - Once a day, the `repository-management-cron` observer iterates
111
+ enabled rows and writes `git/<slug>/journal/YYYY-MM-DD.md` if
112
+ there was activity, plus a one-line entry under
113
+ `## Daily Activity Log` in `overview.md`.
114
+ - **Refresh architecture** (the button) re-runs the Architecture
115
+ analysis on demand. Use it when the codebase has moved enough
116
+ that the existing Architecture section is stale (a major refactor,
117
+ a new package, a switched framework). There is no automatic
118
+ schedule for this — it runs only when you click.
89
119
 
90
120
  The agent never pushes, amends, or force-resets. Read-only by design.
91
121
 
122
+ ## Architecture Section — Deep AI Analysis
123
+
124
+ The `## Architecture` block of `git/<slug>/overview.md` is wrapped in
125
+ `<!-- architecture:start -->` / `<!-- architecture:end -->` markers
126
+ and contains a **module map, runtime shape, data flow, persistence
127
+ model, integrations, build pipeline, and design choices** produced by
128
+ a Sonnet-class agent that reads the actual code.
129
+
130
+ **When it's generated**
131
+
132
+ - **First time** — automatically queued the moment you click
133
+ **Run init now**. Returns immediately with `architectureScheduleId`;
134
+ the agent runs in the background (typically 30 s – 2 min) and
135
+ replaces the placeholder block with real analysis.
136
+ - **On demand** — click **Refresh architecture** any time. The daemon
137
+ re-copies the source README into the slug directory before queueing
138
+ the agent run, so the mirror stays in sync with what the agent
139
+ actually reads.
140
+ - **Never automatically** — there is no weekly/monthly cron that
141
+ refreshes Architecture. This is by design: each refresh costs one
142
+ Sonnet session, and the analysis is durable across daily journal
143
+ appends. If you want a recurring refresh, click the button on
144
+ whatever cadence makes sense for the repo (after a big refactor,
145
+ before a release, etc.).
146
+
147
+ **Idempotency**
148
+
149
+ If you click **Refresh architecture** while a previous refresh is
150
+ still pending or running, the API returns 409 with the existing
151
+ schedule id rather than spawning a parallel session — you cannot burn
152
+ quota by double-clicking.
153
+
154
+ **Surgical writes**
155
+
156
+ The agent never rewrites the whole `overview.md`. It submits only the
157
+ new Architecture body via the chokepoint
158
+ `PUT /api/repositories/:id/architecture-section`; the daemon performs
159
+ the marker-bracketed replacement so other sections (Notable Changes,
160
+ Daily Activity Log, Open Threads) are preserved verbatim. Every write
161
+ also snapshots the previous Architecture body to `md_file_snapshots`
162
+ for recovery.
163
+
164
+ ## README Mirror
165
+
166
+ `git/<slug>/README.md` is a **mechanical verbatim copy** of the
167
+ repository's `README.*` (whichever extension exists, with `.md`
168
+ preferred). It is refreshed on:
169
+
170
+ - Every **Run init now** (initial mirror).
171
+ - Every **Refresh architecture** click (so the mirror tracks what the
172
+ agent just analyzed).
173
+
174
+ It is **not** refreshed on the daily scan — the file rarely changes
175
+ and a daily mirror would just churn `md_file_snapshots`. If you want
176
+ a fresh mirror without re-running architecture analysis, you can
177
+ re-run init.
178
+
179
+ The mirror's purpose is to give the dashboard's `/knowledge` viewer
180
+ and any retrospective tooling a stable copy of the README *as it
181
+ existed at the time of the last refresh*, even after the upstream
182
+ README is rewritten.
183
+
92
184
  ## When It Runs / How It Is Triggered
93
185
 
94
186
  - **Polling** runs continuously on the per-repo cadence (or the global
@@ -99,25 +191,60 @@ The agent never pushes, amends, or force-resets. Read-only by design.
99
191
  which iterates the `repository_management` table once an hour and
100
192
  emits a `scheduled.task` (`git.project.update`) for any enabled row
101
193
  whose `last_scan_at` is more than 24 hours old.
194
+ - **Architecture refresh** (`git.project.refresh_architecture`) is
195
+ enqueued only on:
196
+ - Manual **Run init now** (auto-enqueue, first time only).
197
+ - Manual **Refresh architecture** click.
198
+
199
+ No cron, no observer fires this. The cron-driven implicit init
200
+ (when daily scan creates a missing skeleton) deliberately does NOT
201
+ auto-enqueue.
102
202
 
103
203
  ## What It Outputs
104
204
 
105
- - **Polling** `observation` rows (one per detected change set) +
106
- trigger fires when a trigger's match conditions are satisfied.
107
- - **Triggers** an autonomous session whose task-flow is selected
108
- by the trigger's process key.
109
- - **Daily git management** → `git/<slug>/overview.md` (refreshed each
110
- scan) and `git/<slug>/journal/YYYY-MM-DD.md` (appended for the day,
111
- only when activity warrants it).
205
+ Per repository, under `<contextDir>/git/<slug>/`:
206
+
207
+ | File | Source | Refresh cadence |
208
+ |---|---|---|
209
+ | `overview.md` | Daemon (skeleton + Notable Changes + journal log) + Agent (Architecture section) | Skeleton on init; Architecture on init/refresh; daily entry appended on each scan |
210
+ | `README.md` | Verbatim copy of `<repo>/README.*` | Every init + every architecture refresh |
211
+ | `journal/YYYY-MM-DD.md` | Daemon (commits + PR/workflow observations + diff stat) | Once per day per repo, when activity exists |
212
+
213
+ Polling additionally produces `observation` rows in the database;
214
+ triggers spawn autonomous sessions whose task-flow is selected by the
215
+ trigger's process key.
112
216
 
113
217
  ## Where in the Dashboard
114
218
 
115
- - **My Life → Git** (`/git`) — this page.
219
+ - **My Life → Git** (`/git`) — this page. Polling, Triggers, and Daily
220
+ git management are now all expanded by default.
116
221
  - **Connections → Repositories** (`/connections/repositories`) —
117
- register a repo (link a `localPath` and/or `owner/repo`),
118
- rename, set `local-only`, delete.
222
+ register a repo (link a `localPath` and/or `owner/repo`), rename,
223
+ set `local-only`, delete. The model-binding cards visible on this
224
+ page now cover only the **`git.project.init`**, **`git.project.update`**,
225
+ and **`git.project.retemplate`** processes — the per-event
226
+ GitHub cards (`github.assigned`, `github.security_alert`,
227
+ `github.pull_request.review_requested`, `github.workflow_run.failed`)
228
+ were folded back into the default routing. To pin a different model
229
+ for any of those, use **Settings → Models** instead.
119
230
  - **Knowledge** (`/knowledge?path=git/<slug>/overview`) — quick links
120
- on each repo card open the generated overview / today's journal.
231
+ on each Daily-git-management panel open the generated overview, the
232
+ current day's journal, and (after the architecture refresh
233
+ completes) the AI-rich Architecture section in context.
234
+
235
+ ## UI polish (2026-05-07)
236
+
237
+ - The Daily git management toggle is now a styled switch instead of a
238
+ raw checkbox — same behavior, more legible state.
239
+ - Init / Refresh architecture / Run today's scan now buttons surface
240
+ inline confirmation messages (green) on success and inline error
241
+ messages (red) on failure, instead of the previous silent return.
242
+ - The button order on the panel is **Run init now → Refresh
243
+ architecture → Run today's scan now**, matching the lifecycle order
244
+ (one-time skeleton → one-time deep analysis → daily increments).
245
+ - The Polling, Triggers, and Daily git management collapsibles all
246
+ open by default so a freshly-loaded `/git` page exposes every
247
+ per-repo control without an extra click.
121
248
 
122
249
  ## Configuration
123
250
 
@@ -127,6 +254,7 @@ The agent never pushes, amends, or force-resets. Read-only by design.
127
254
  | Per-repo polling override | `/git` → Polling | Stored on the repository row; null means "use global". |
128
255
  | Triggers | `/git` → Triggers | Per-repo, multiple. Each has match conditions, workdir mode, process key. |
129
256
  | Daily git management toggle | `/git` → Daily git management | Stored in `repository_management` table. Requires `localPath`. |
257
+ | Architecture refresh model | `/settings/models` (process key `git.project.refresh_architecture`) | Defaults to Sonnet. Pin to a different model per backend if you want Opus-grade analysis instead. |
130
258
 
131
259
  ## Local Clone Requirement
132
260
 
@@ -148,6 +276,10 @@ repository has a `localPath`:
148
276
  `listManagementDueForScan` query filters on `r.local_path IS NOT
149
277
  NULL`, so even a stale `enabled = 1` row will not fire without a
150
278
  local path.
279
+ - **Architecture refresh** also requires a `localPath` — the agent
280
+ reads source files directly from disk. The button is disabled with
281
+ the same "No local clone" message until you link one on
282
+ **Connections → Repositories**.
151
283
 
152
284
  ## When Something Goes Wrong
153
285
 
@@ -166,9 +298,24 @@ repository has a `localPath`:
166
298
  (check `Last scan`-style timestamps), and remember the agent's own
167
299
  writes are filtered out (see `AgentWriteTracker`) — make sure the
168
300
  commit was authored by you.
301
+ - **Architecture section still shows the placeholder text** (`_Architecture
302
+ analysis pending..._`) several minutes after init. Open
303
+ **Activity**, filter for `git.project.refresh_architecture`, and
304
+ inspect the latest run. Common causes: the agent crashed before
305
+ calling the chokepoint, or the backend session is still running on
306
+ a slow network. Click **Refresh architecture** to retry.
307
+ - **"Refresh architecture" returns 409 `already_in_flight`.** A
308
+ previous refresh is still pending or running for this repo. Wait
309
+ for it to complete (Activity → `git.project.refresh_architecture`)
310
+ before clicking again.
311
+ - **The README mirror went out of date** after the source repo's
312
+ README was rewritten. Click **Refresh architecture** (which also
313
+ re-copies the README) or **Run init now** on the repo.
169
314
 
170
315
  ## Related
171
316
 
317
+ - [Refresh repository architecture](../../guides/refresh-repository-architecture.md)
318
+ — focused walkthrough of the Refresh architecture button.
172
319
  - [Git integration](../integrations/git.md) — the underlying observer
173
320
  contract and `gitPollIntervalSeconds` semantics.
174
321
  - [GitHub integration](../integrations/github.md) — remote-side data
@@ -25,7 +25,7 @@ ask_examples:
25
25
  - Why didn't I get a notification?
26
26
  locale: en-US
27
27
  created: 2026-04-25
28
- updated: 2026-04-25
28
+ updated: 2026-05-04
29
29
  keywords:
30
30
  - messaging
31
31
  - dm
@@ -34,6 +34,8 @@ keywords:
34
34
  - slack
35
35
  - discord
36
36
  - whatsapp
37
+ - voice
38
+ - audio
37
39
  related:
38
40
  - features/messaging/pairing-and-magic-phrase
39
41
  - features/messaging/telegram
@@ -41,6 +43,7 @@ related:
41
43
  - features/messaging/discord
42
44
  - features/messaging/whatsapp
43
45
  - features/messaging/dashboard-chat
46
+ - features/messaging/voice-attachments
44
47
  - features/operations/notifications
45
48
  - features/operations/quiet-hours
46
49
  ui_anchors:
@@ -65,6 +68,10 @@ notification fires.
65
68
  the same way (group chat is filtered out by design — DMs only).
66
69
  - **Outbound notifications**: routines and observations fire alerts
67
70
  back through the same channel.
71
+ - **Voice attachments**: when the platform attaches audio (Telegram
72
+ voice notes, WhatsApp voice messages, etc.), the daemon transcribes
73
+ it locally with Whisper before handing the turn to the agent. See
74
+ [Voice Attachments](voice-attachments.md).
68
75
  - **Magic-phrase pairing**: the operator types a one-time phrase to
69
76
  bind their account to the agent (anti-impersonation).
70
77
 
@@ -107,5 +114,7 @@ adapter and the dispatcher both check).
107
114
  ## Related
108
115
 
109
116
  - [Pairing & Magic Phrase](pairing-and-magic-phrase.md)
117
+ - [Voice Attachments](voice-attachments.md) — local Whisper
118
+ transcription for inbound audio.
110
119
  - [Dashboard Chat](dashboard-chat.md) — the in-browser equivalent.
111
120
  - [Notifications](../operations/notifications.md)
@@ -115,7 +115,7 @@ during the setup wizard's first day. After the first run, only
115
115
 
116
116
  - The most common failure is **morning routine did not run** because the daemon was offline at the trigger window. The next launch picks the run up via the catch-up scheduler if it is still the same agent day.
117
117
  - A failed morning routine emits a fallback-success notification when the secondary backend caught the run, or a fallback-failed notification (high priority) when both failed.
118
- - Heavy-tier quota exhaustion (Claude Max5/Max20 5-hour Opus window) is the second most common cause. Switch the routine's model to a different heavy-tier option in Settings → Models or wait out the window.
118
+ - Heavy-tier quota exhaustion is the second most common cause: a provider rate limit on your `ANTHROPIC_API_KEY`, or — when running on the subscription fallback — the rolling Opus window of the underlying Claude plan. Switch the routine's model to a different heavy-tier option in Settings → Models or wait for the provider window to refresh.
119
119
 
120
120
  ## Related
121
121
 
@@ -6,8 +6,9 @@ id: what-is-this
6
6
  category: getting-started
7
7
  summary: |
8
8
  Aitne is a local-first proactive personal AI agent. It runs
9
- as a daemon on your own machine, uses your Claude / Codex / Gemini
10
- subscription, and stores all memory as plain Markdown files.
9
+ as a daemon on your own machine, calls Claude / Codex / Gemini via
10
+ API keys you register (with the local CLI's subscription auth as a
11
+ fallback), and stores all memory as plain Markdown files.
11
12
  section: getting-started
12
13
  tags:
13
14
  - core
@@ -32,9 +33,10 @@ related:
32
33
  # What is Aitne?
33
34
 
34
35
  Aitne is a local-first personal AI agent. It runs as a long-running
35
- daemon on your own machine, uses an LLM subscription you already own
36
- (Claude, Codex, or Gemini), and keeps all of its memory as plain
37
- Markdown files under `~/.personal-agent/`.
36
+ daemon on your own machine, drives Claude Code, Codex CLI, or Gemini
37
+ CLI via provider API keys you register (with the CLI's local
38
+ subscription login as a fallback), and keeps all of its memory as
39
+ plain Markdown files under `~/.personal-agent/`.
38
40
 
39
41
  Unlike a chat assistant that only responds when you type, Aitne also
40
42
  runs on its own — on a schedule, in reaction to changes it sees in
@@ -128,16 +130,30 @@ an opaque vector store.
128
130
 
129
131
  → [Memory Model](../concepts/memory-model.md)
130
132
 
131
- ### Use the LLM subscription you already have
133
+ ### Drive Claude Code / Codex / Gemini via API keys
134
+
135
+ Aitne drives Claude Code, Codex CLI, and Gemini CLI on your behalf.
136
+ The recommended setup is to register a provider API key for each
137
+ backend you want to use — this matches what Anthropic, OpenAI, and
138
+ Google document for headless / programmatic agent use, and gives you
139
+ predictable per-call billing that is unambiguously permitted.
140
+
141
+ - Claude — `ANTHROPIC_API_KEY` (via Claude Code)
142
+ - Codex — `OPENAI_API_KEY` (via Codex CLI)
143
+ - Gemini — `GEMINI_API_KEY` / `GOOGLE_API_KEY` (via Gemini CLI)
144
+
145
+ If you skip the API key, Aitne falls back to whatever local
146
+ subscription login the CLI already has on your machine (`claude`,
147
+ `codex login`, `gemini auth`). This fallback works mechanically, but
148
+ most providers do not officially support running automated agents on
149
+ a personal subscription — Anthropic currently prohibits using the
150
+ Claude Agent SDK with a Claude Pro / Max subscription. The dashboard
151
+ surfaces a warning whenever a backend is running on subscription
152
+ auth.
132
153
 
133
- You can point Aitne at one or more of your existing subscriptions.
134
154
  Each kind of work (heavy reasoning vs. a quick reply) is mapped to a
135
155
  backend; you can change the mapping any time.
136
156
 
137
- - Claude (via Claude Code)
138
- - Codex (via Codex CLI)
139
- - Gemini (via Gemini CLI)
140
-
141
157
  → [Backends and Tiers](../concepts/backends-and-tiers.md) ·
142
158
  [Costs and Quotas](../concepts/costs-and-quotas.md) ·
143
159
  [Backend Routing](../features/operations/backend-routing.md)
@@ -166,7 +182,9 @@ backend; you can change the mapping any time.
166
182
  - **An IDE plugin**: Claude Code is one of its backends, but the
167
183
  agent daemon is the surface, not the editor.
168
184
  - **A separate subscription**: Aitne itself does not bill you; you
169
- pay your LLM provider directly.
185
+ pay your LLM provider directly via the API key you register (or via
186
+ the CLI's local subscription auth, if you opt into the fallback
187
+ path).
170
188
 
171
189
  ## Where to Start
172
190
 
@@ -18,12 +18,13 @@ ask_examples:
18
18
  - Do I have to connect every integration?
19
19
  locale: en-US
20
20
  created: 2026-04-27
21
- updated: 2026-04-27
21
+ updated: 2026-05-04
22
22
  related:
23
23
  - getting-started/01-what-is-this
24
24
  - getting-started/03-what-can-this-do
25
25
  - getting-started/04-first-day
26
26
  - guides/setup-wizard
27
+ - guides/use-cloud-providers
27
28
  ---
28
29
 
29
30
  # First Steps in the Dashboard
@@ -49,9 +50,19 @@ in (a backend, a messaging pair). Run through it once, top to bottom.
49
50
  the daemon claims you as the owner. See
50
51
  [Messaging Overview](../features/messaging/overview.md) for the
51
52
  list of supported apps and what each one does well.
52
- 3. **Pick a main backend and plan.** This is the LLM the agent uses
53
- for "think hard" turns. Defaults are sensible; you can change it
54
- later from `/settings/models`. Background:
53
+ 3. **Pick a main backend and register an API key.** Pick the LLM
54
+ the agent uses for "think hard" turns (Claude / Codex / Gemini)
55
+ and paste a provider API key — the supported way to run a
56
+ headless agent. If you skip the key, the daemon falls back to
57
+ whatever subscription login the matching CLI already has on your
58
+ machine; the dashboard surfaces a warning when this happens
59
+ because most providers do not support running agents on a
60
+ personal subscription. The same picker also lets you point the
61
+ backend at a cloud provider (Bedrock / Vertex / Foundry / Azure
62
+ OpenAI / Gemini-Vertex) instead of the direct API key — see
63
+ [Use a Cloud Provider for Models](../guides/use-cloud-providers.md).
64
+ Defaults are sensible and can be changed later from
65
+ `/settings/models`. Background:
55
66
  [Backends and Tiers](../concepts/backends-and-tiers.md).
56
67
  4. **Skip integrations you do not need yet.** Mail, calendar, git,
57
68
  Notion, Obsidian are all optional and re-runnable any time from
@@ -19,13 +19,15 @@ ask_examples:
19
19
  - How does the agent reach out to me?
20
20
  locale: en-US
21
21
  created: 2026-04-27
22
- updated: 2026-04-27
22
+ updated: 2026-05-04
23
23
  related:
24
24
  - getting-started/01-what-is-this
25
25
  - getting-started/02-first-steps
26
26
  - getting-started/04-first-day
27
27
  - concepts/routines
28
28
  - concepts/memory-model
29
+ - features/messaging/voice-attachments
30
+ - features/operations/skill-self-optimization
29
31
  ---
30
32
 
31
33
  # What This App Can Do
@@ -47,10 +49,13 @@ review writes a journal entry; weekly and monthly summaries roll up.
47
49
 
48
50
  DM the agent from Telegram, Slack, Discord, WhatsApp, or the
49
51
  dashboard's own chat. It answers, remembers, and can DM you back when
50
- something comes up.
52
+ something comes up. Voice notes are transcribed locally with Whisper
53
+ so you can talk to it the same way you'd type.
51
54
 
52
55
  - [Messaging Overview](../features/messaging/overview.md) — supported
53
56
  apps and how pairing works.
57
+ - [Voice Attachments](../features/messaging/voice-attachments.md) —
58
+ local transcription of inbound audio.
54
59
  - [Dashboard Chat](../features/messaging/dashboard-chat.md) — the
55
60
  in-dashboard chat surface.
56
61
 
@@ -102,6 +107,16 @@ operations keep the agent from doing anything you don't want.
102
107
  - [Quiet Hours](../features/operations/quiet-hours.md) — when it
103
108
  stays silent.
104
109
 
110
+ ## Get sharper over time
111
+
112
+ A background self-optimization loop watches how your knowledge layout
113
+ drifts (new folders, schema tweaks, vocabulary changes) and refines
114
+ specific skill sections to match. The original SKILL.md files are
115
+ never rewritten — overlays are reversible.
116
+
117
+ - [Skill Self-Optimization](../features/operations/skill-self-optimization.md)
118
+ — the loop, the cadence, and the dashboard surface.
119
+
105
120
  ## Related
106
121
 
107
122
  - [Your First Day](04-first-day.md) — what to expect when the agent
@@ -39,7 +39,16 @@ through the setup wizard.
39
39
  ## Prerequisites
40
40
 
41
41
  - Node ≥ 22, pnpm 10.x.
42
- - A Claude Code / Codex / Gemini CLI subscription (at least one).
42
+ - A provider API key for at least one backend you intend to use:
43
+ Anthropic (`ANTHROPIC_API_KEY`), OpenAI (`OPENAI_API_KEY`), or
44
+ Google (`GEMINI_API_KEY` / `GOOGLE_API_KEY`). API keys are the
45
+ recommended and provider-supported way to run Aitne. If you skip
46
+ the key, Aitne falls back to the corresponding CLI's local
47
+ subscription login (`claude`, `codex login`, `gemini auth`); see
48
+ [Costs and Quotas](../concepts/costs-and-quotas.md) for the trade-
49
+ offs and the provider policies that apply.
50
+ - The CLI binary for whichever backend you pick (Claude Code, Codex
51
+ CLI, or Gemini CLI) installed on `PATH`.
43
52
  - ~200 MB of disk for the daemon's local state.
44
53
 
45
54
  ## Steps
@@ -10,7 +10,8 @@ aliases:
10
10
  category: guides
11
11
  summary: |
12
12
  Walks through the setup wizard step by step: profile, time axis,
13
- backends and plans, messaging pairing, integrations, execution mode.
13
+ backend selection and API-key registration, messaging pairing,
14
+ integrations, execution mode.
14
15
  tags:
15
16
  - setup
16
17
  status: stable
@@ -20,16 +21,20 @@ ask_examples:
20
21
  - Do I have to connect every integration to start?
21
22
  locale: en-US
22
23
  created: 2026-04-25
23
- updated: 2026-04-27
24
+ updated: 2026-05-04
24
25
  keywords:
25
26
  - setup
26
27
  - wizard
27
28
  - first run
29
+ - cloud providers
30
+ - bedrock
31
+ - vertex
28
32
  related:
29
33
  - getting-started/01-what-is-this
30
34
  - getting-started/02-first-steps
31
35
  - getting-started/04-first-day
32
36
  - concepts/safety-and-execution
37
+ - guides/use-cloud-providers
33
38
  ui_anchors:
34
39
  - /setup
35
40
  ---
@@ -61,10 +66,42 @@ Set your timezone and `dayBoundaryHour` (default 04:00). See
61
66
  [Agent Day](../concepts/agent-day.md) for why the boundary is not
62
67
  midnight.
63
68
 
64
- ### Step 3 — Backends and Plans
65
-
66
- Pick a main backend (Claude / Codex / Gemini) and the plan you
67
- subscribe to. You can change this any time on `/settings/models`.
69
+ ### Step 3 — Backends and API Keys
70
+
71
+ Pick a main backend (Claude / Codex / Gemini), verify the CLI is
72
+ installed, and register a provider API key for it. The wizard uses
73
+ the per-backend API-key panel to store the key in the OS keychain;
74
+ the daemon mirrors it into `process.env` so the SDK / CLI subprocess
75
+ picks it up.
76
+
77
+ The provider dropdown picks one of:
78
+
79
+ - **Claude** — `anthropic` (direct), `bedrock` (Amazon Bedrock),
80
+ `vertex` (Google Vertex AI), `foundry` (Microsoft Foundry).
81
+ - **Codex** — `openai` (direct), `azure-openai` (Azure OpenAI; the
82
+ daemon writes a managed `config.toml` under `<dataDir>/codex-home/`
83
+ so your personal `~/.codex/` is untouched).
84
+ - **Gemini** — `google` (direct AI Studio key), `gemini-vertex`
85
+ (Vertex AI).
86
+
87
+ For non-direct providers, the form re-renders with the cloud-specific
88
+ fields (region, project ID, AWS auth mode, deployment names, …). See
89
+ [Use a Cloud Provider for Models](use-cloud-providers.md) for the
90
+ full per-provider field reference.
91
+
92
+ API key (or cloud-provider) registration is the recommended path
93
+ because it is what Anthropic, OpenAI, and Google document for
94
+ headless / programmatic agent use. Skipping the key is allowed —
95
+ the daemon falls back to the backend's local CLI login
96
+ (subscription auth) — but the dashboard flags the fallback because
97
+ most providers do not officially support running automated agents on
98
+ a personal subscription. Anthropic in particular currently prohibits
99
+ using the Claude Agent SDK with a Claude Pro / Max subscription.
100
+
101
+ Per-process model bindings are seeded with fixed defaults (Sonnet for
102
+ owner-facing work, Haiku for delegated/simple polling); subscription-
103
+ plan registration has been removed. You can change the bindings or
104
+ the credentials any time on `/settings/models`.
68
105
 
69
106
  ### Step 4 — Execution Mode
70
107
 
@@ -18,11 +18,12 @@ ask_examples:
18
18
  - How do I make my morning routine use Gemini?
19
19
  locale: en-US
20
20
  created: 2026-04-25
21
- updated: 2026-04-25
21
+ updated: 2026-05-04
22
22
  related:
23
23
  - concepts/backends-and-tiers
24
24
  - features/operations/backend-routing
25
25
  - guides/change-which-model-handles-x
26
+ - guides/use-cloud-providers
26
27
  ---
27
28
 
28
29
  # Switch the Default Backend
@@ -34,8 +35,11 @@ ProcessKey to a different one.
34
35
 
35
36
  ## Prerequisites
36
37
 
37
- - The new backend is authenticated (Claude credentials, Codex token,
38
- or Gemini API key).
38
+ - The new backend has an API key registered on `/settings/models`
39
+ (`anthropic` / `openai` / `google`, or one of the cloud-provider
40
+ options for that backend). API keys are the supported path; if no
41
+ key is set, the daemon falls back to whatever subscription login
42
+ the CLI already has — the dashboard will flag it.
39
43
 
40
44
  ## Steps
41
45
 
@@ -17,9 +17,10 @@ ask_examples:
17
17
  - What does the docs-search skill do?
18
18
  locale: en-US
19
19
  created: 2026-04-25
20
- updated: 2026-04-25
20
+ updated: 2026-05-04
21
21
  related:
22
22
  - concepts/skills
23
+ - features/operations/skill-self-optimization
23
24
  ---
24
25
 
25
26
  # Built-in Skills
@@ -48,3 +49,11 @@ related:
48
49
  The source of truth is each skill's `SKILL.md` under
49
50
  `agent-assets/skills/<slug>/`. The `description` field in that file's
50
51
  frontmatter is what the dispatcher uses for runtime skill selection.
52
+
53
+ A subset of these skills' sections (knowledge layout, routing
54
+ tables, search recipes, etc.) is also refined at runtime through
55
+ JSON **overlays** maintained by the skill-curation loop. The seed
56
+ files in `agent-assets/skills/` are never rewritten — overlays are
57
+ applied at session-init by the SkillsCompiler and live under
58
+ `<dataDir>/overlays/<skill>/<section-id>.json`. See
59
+ [Skill Self-Optimization](../features/operations/skill-self-optimization.md).