@aitne-sh/aitne 0.1.7 → 0.1.9
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/README.md +256 -833
- package/agent-assets/agent-profiles/_safety.md +52 -20
- package/agent-assets/agent-profiles/browser-task.md +108 -0
- package/agent-assets/agent-profiles/conversational.md +3 -3
- package/agent-assets/agent-profiles/profile-importer.md +3 -3
- package/agent-assets/agent-profiles/routine-fetch-window.md +30 -19
- package/agent-assets/agent-profiles/routine.md +4 -3
- package/agent-assets/agents/context-index-reconcile/agent.md +52 -0
- package/agent-assets/agents/evening-review/agent.md +53 -0
- package/agent-assets/agents/hourly-check/agent.md +62 -0
- package/agent-assets/agents/monthly-review/agent.md +55 -0
- package/agent-assets/agents/morning-routine/agent.md +78 -0
- package/agent-assets/agents/roadmap-maintenance/agent.md +52 -0
- package/agent-assets/agents/skill-curation/agent.md +52 -0
- package/agent-assets/agents/user-profile-sweep-evening/agent.md +48 -0
- package/agent-assets/agents/user-profile-sweep-morning/agent.md +53 -0
- package/agent-assets/agents/weekly-review/agent.md +51 -0
- package/agent-assets/docs/concepts/agent-day.md +18 -11
- package/agent-assets/docs/concepts/auth-health.md +56 -10
- package/agent-assets/docs/concepts/backends-and-tiers.md +110 -41
- package/agent-assets/docs/concepts/costs-and-quotas.md +74 -19
- package/agent-assets/docs/concepts/delegated-mode.md +193 -75
- package/agent-assets/docs/concepts/memory-model.md +79 -34
- package/agent-assets/docs/concepts/observations.md +61 -11
- package/agent-assets/docs/concepts/process-keys.md +66 -17
- package/agent-assets/docs/concepts/routines.md +77 -32
- package/agent-assets/docs/concepts/safety-and-execution.md +50 -21
- package/agent-assets/docs/concepts/safety-model.md +62 -37
- package/agent-assets/docs/concepts/skills.md +38 -17
- package/agent-assets/docs/features/integrations/browser-history.md +195 -0
- package/agent-assets/docs/features/integrations/calendar.md +40 -30
- package/agent-assets/docs/features/integrations/git.md +20 -9
- package/agent-assets/docs/features/integrations/github.md +93 -35
- package/agent-assets/docs/features/integrations/mail.md +60 -17
- package/agent-assets/docs/features/integrations/notion.md +51 -11
- package/agent-assets/docs/features/integrations/obsidian.md +35 -7
- package/agent-assets/docs/features/lifestyle/git.md +45 -44
- package/agent-assets/docs/features/lifestyle/reading.md +50 -22
- package/agent-assets/docs/features/lifestyle/receipts.md +66 -21
- package/agent-assets/docs/features/lifestyle/travel-bookings.md +91 -14
- package/agent-assets/docs/features/memory-files/agent-journal.md +111 -50
- package/agent-assets/docs/features/memory-files/projects.md +75 -15
- package/agent-assets/docs/features/memory-files/roadmap.md +55 -10
- package/agent-assets/docs/features/memory-files/schedule.md +113 -70
- package/agent-assets/docs/features/memory-files/today.md +47 -21
- package/agent-assets/docs/features/memory-files/user-profile.md +67 -31
- package/agent-assets/docs/features/messaging/bang-commands.md +115 -28
- package/agent-assets/docs/features/messaging/dashboard-chat.md +43 -21
- package/agent-assets/docs/features/messaging/discord.md +46 -4
- package/agent-assets/docs/features/messaging/overview.md +40 -19
- package/agent-assets/docs/features/messaging/pairing-and-magic-phrase.md +94 -27
- package/agent-assets/docs/features/messaging/slack.md +79 -14
- package/agent-assets/docs/features/messaging/telegram.md +25 -6
- package/agent-assets/docs/features/messaging/whatsapp.md +79 -14
- package/agent-assets/docs/features/operations/activity-and-conversations.md +45 -16
- package/agent-assets/docs/features/operations/approvals.md +53 -15
- package/agent-assets/docs/features/operations/backend-routing.md +75 -16
- package/agent-assets/docs/features/operations/cost-tracking.md +90 -17
- package/agent-assets/docs/features/operations/managed-chromium.md +221 -0
- package/agent-assets/docs/features/operations/notifications.md +58 -11
- package/agent-assets/docs/features/operations/quiet-hours.md +63 -40
- package/agent-assets/docs/features/operations/schedule-approaching.md +59 -16
- package/agent-assets/docs/features/routines/custom-routines.md +97 -23
- package/agent-assets/docs/features/routines/evening-review.md +75 -22
- package/agent-assets/docs/features/routines/hourly-check.md +150 -30
- package/agent-assets/docs/features/routines/morning-routine.md +60 -33
- package/agent-assets/docs/features/routines/weekly-review.md +65 -20
- package/agent-assets/docs/features/wiki/commands.md +37 -16
- package/agent-assets/docs/features/wiki/cost-and-approval.md +240 -0
- package/agent-assets/docs/features/wiki/dashboard.md +255 -0
- package/agent-assets/docs/features/wiki/overview.md +80 -12
- package/agent-assets/docs/features/wiki/search.md +248 -0
- package/agent-assets/docs/features/wiki/workspaces.md +254 -0
- package/agent-assets/docs/getting-started/01-what-is-this.md +64 -32
- package/agent-assets/docs/getting-started/02-first-steps.md +28 -10
- package/agent-assets/docs/getting-started/03-what-can-this-do.md +42 -21
- package/agent-assets/docs/getting-started/04-first-day.md +52 -20
- package/agent-assets/docs/glossary.md +285 -21
- package/agent-assets/docs/guides/add-a-custom-routine.md +74 -22
- package/agent-assets/docs/guides/backup-and-restore.md +92 -14
- package/agent-assets/docs/guides/budget-and-cost-for-wiki.md +62 -25
- package/agent-assets/docs/guides/build-your-wiki.md +33 -6
- package/agent-assets/docs/guides/change-which-model-handles-x.md +70 -9
- package/agent-assets/docs/guides/connect-a-new-mail-account.md +80 -15
- package/agent-assets/docs/guides/explore-with-trace-and-connect.md +32 -9
- package/agent-assets/docs/guides/import-knowledge-file.md +60 -39
- package/agent-assets/docs/guides/install-and-run.md +64 -19
- package/agent-assets/docs/guides/maintain-wiki-health.md +41 -10
- package/agent-assets/docs/guides/migrate-machines.md +86 -18
- package/agent-assets/docs/guides/multiple-wikis-for-multiple-domains.md +119 -59
- package/agent-assets/docs/guides/pause-the-agent.md +71 -22
- package/agent-assets/docs/guides/reinstall-cleanly.md +102 -17
- package/agent-assets/docs/guides/setup-wizard.md +126 -56
- package/agent-assets/docs/guides/switch-default-backend.md +72 -17
- package/agent-assets/docs/guides/use-an-existing-obsidian-vault.md +31 -10
- package/agent-assets/docs/reference/api.md +162 -23
- package/agent-assets/docs/reference/cli-commands.md +55 -15
- package/agent-assets/docs/reference/config.md +246 -39
- package/agent-assets/docs/reference/disallowed-tools.md +42 -10
- package/agent-assets/docs/reference/keyboard-shortcuts.md +47 -10
- package/agent-assets/docs/reference/knowledge-layout.md +620 -0
- package/agent-assets/docs/reference/process-keys.md +126 -20
- package/agent-assets/docs/reference/skills.md +62 -18
- package/agent-assets/docs/troubleshooting/auth-failed.md +53 -19
- package/agent-assets/docs/troubleshooting/dashboard-shows-degraded.md +96 -22
- package/agent-assets/docs/troubleshooting/fallback-keeps-firing.md +94 -20
- package/agent-assets/docs/troubleshooting/messaging-not-pairing.md +77 -22
- package/agent-assets/docs/troubleshooting/morning-routine-didnt-run.md +87 -22
- package/agent-assets/docs/troubleshooting/observation-not-detected.md +85 -21
- package/agent-assets/docs/troubleshooting/quota-exhausted.md +36 -6
- package/agent-assets/docs/troubleshooting/wiki-ingest-full-blocked.md +128 -51
- package/agent-assets/docs/troubleshooting/wiki-write-failed.md +33 -11
- package/agent-assets/optimizer-skills/drift-analysis/SKILL.md +1 -1
- package/agent-assets/optimizer-skills/knowledge-map/SKILL.md +1 -1
- package/agent-assets/optimizer-skills/skill-curation/SKILL.md +2 -2
- package/agent-assets/sandbox/linux/aitne-chromium.apparmor +91 -0
- package/agent-assets/sandbox/macos/aitne-chromium.sb +156 -0
- package/agent-assets/skills/agent-actions/SKILL.md +122 -0
- package/agent-assets/skills/agent-create/SKILL.md +149 -0
- package/agent-assets/skills/attach/SKILL.md +3 -4
- package/agent-assets/skills/browser-history/SKILL.md +198 -0
- package/agent-assets/skills/browser-history-respond/SKILL.md +106 -0
- package/agent-assets/skills/browser-task/SKILL.md +169 -0
- package/agent-assets/skills/context/SKILL.md +45 -463
- package/agent-assets/skills/context/curation.json +2 -2
- package/agent-assets/skills/context/references/api.md +232 -0
- package/agent-assets/skills/context/references/required-frontmatter.md +73 -0
- package/agent-assets/skills/context/references/snapshot-files.md +103 -0
- package/agent-assets/skills/context/seeds/file-responsibilities.seed.json +4 -4
- package/agent-assets/skills/docs-search/SKILL.md +17 -16
- package/agent-assets/skills/external-services/SKILL.delegated.claude.md +14 -26
- package/agent-assets/skills/external-services/SKILL.delegated.codex.md +14 -26
- package/agent-assets/skills/external-services/SKILL.delegated.gemini.md +14 -26
- package/agent-assets/skills/external-services/SKILL.md +9 -262
- package/agent-assets/skills/external-services/SKILL.native.claude.md +6 -7
- package/agent-assets/skills/external-services/SKILL.native.codex.md +8 -9
- package/agent-assets/skills/external-services/SKILL.native.gemini.md +5 -6
- package/agent-assets/skills/external-services/references/calendar-apple.md +97 -0
- package/agent-assets/skills/external-services/references/calendar-google.md +72 -0
- package/agent-assets/skills/external-services/references/calendar-outlook.md +36 -0
- package/agent-assets/skills/external-services/references/github.md +17 -0
- package/agent-assets/skills/external-services/references/obsidian.md +49 -0
- package/agent-assets/skills/external-services/references/skills-crud.md +27 -0
- package/agent-assets/skills/gmail-lifestyle/SKILL.md +151 -0
- package/agent-assets/skills/gmail-lifestyle/references/receipts-api.md +93 -0
- package/agent-assets/skills/gmail-lifestyle/references/travel-bookings-api.md +75 -0
- package/agent-assets/skills/mail/SKILL.delegated.claude.md +15 -6
- package/agent-assets/skills/mail/SKILL.delegated.codex.md +9 -5
- package/agent-assets/skills/mail/SKILL.delegated.gemini.md +9 -5
- package/agent-assets/skills/mail/SKILL.md +9 -114
- package/agent-assets/skills/mail/SKILL.native.claude.md +1 -1
- package/agent-assets/skills/mail/SKILL.native.codex.md +1 -1
- package/agent-assets/skills/mail/SKILL.native.gemini.md +1 -1
- package/agent-assets/skills/mail/references/api.md +110 -0
- package/agent-assets/skills/mail/references/examples.md +70 -0
- package/agent-assets/skills/mail/references/providers.md +8 -8
- package/agent-assets/skills/managed-tasks/SKILL.md +472 -0
- package/agent-assets/skills/managed-tasks/references/errors.md +73 -0
- package/agent-assets/skills/managed-tasks/references/output-path.md +75 -0
- package/agent-assets/skills/managed-tasks/references/recurrence-rule.md +86 -0
- package/agent-assets/skills/management-policy/SKILL.md +54 -125
- package/agent-assets/skills/management-policy/curation.json +1 -1
- package/agent-assets/skills/management-policy/references/policy-workflow.md +101 -0
- package/agent-assets/skills/management-policy/seeds/policy-file-shape.seed.json +1 -1
- package/agent-assets/skills/notify/SKILL.md +10 -82
- package/agent-assets/skills/notify/references/priority.md +65 -0
- package/agent-assets/skills/notion/SKILL.delegated.claude.md +2 -2
- package/agent-assets/skills/notion/SKILL.delegated.codex.md +2 -2
- package/agent-assets/skills/notion/SKILL.delegated.gemini.md +2 -2
- package/agent-assets/skills/notion/SKILL.md +6 -10
- package/agent-assets/skills/notion/SKILL.native.claude.md +11 -8
- package/agent-assets/skills/notion/SKILL.native.codex.md +10 -6
- package/agent-assets/skills/notion/SKILL.native.gemini.md +10 -6
- package/agent-assets/skills/observations/SKILL.md +25 -14
- package/agent-assets/skills/project-doc/SKILL.md +2 -6
- package/agent-assets/skills/project-doc/curation.json +3 -3
- package/agent-assets/skills/project-doc/seeds/project-shape.seed.json +7 -4
- package/agent-assets/skills/project-doc/seeds/slug-grammar.seed.json +3 -3
- package/agent-assets/skills/reading/SKILL.md +12 -2
- package/agent-assets/skills/reading/references/reading-taste.md +2 -2
- package/agent-assets/skills/roadmap/SKILL.md +43 -141
- package/agent-assets/skills/roadmap/curation.json +1 -1
- package/agent-assets/skills/roadmap/references/api.md +100 -0
- package/agent-assets/skills/roadmap/references/cross-check.md +80 -0
- package/agent-assets/skills/roadmap/references/migration.md +56 -0
- package/agent-assets/skills/roadmap/references/preparation-timeline.md +2 -2
- package/agent-assets/skills/roadmap/seeds/entry-types.seed.json +1 -1
- package/agent-assets/skills/schedule/SKILL.md +76 -104
- package/agent-assets/skills/schedule/references/batch.md +93 -0
- package/agent-assets/skills/schedule/references/errors.md +217 -0
- package/agent-assets/skills/schedule/references/model-selection.md +96 -0
- package/agent-assets/skills/schedule/references/recurrence-rule.md +86 -0
- package/agent-assets/skills/scheduled-managed-task/SKILL.md +59 -51
- package/agent-assets/skills/today/SKILL.md +32 -62
- package/agent-assets/skills/today/curation.json +3 -3
- package/agent-assets/skills/today/references/agent-plan-lifecycle.md +114 -0
- package/agent-assets/skills/today/seeds/section-shape.seed.json +1 -1
- package/agent-assets/skills/user-interview/SKILL.md +23 -67
- package/agent-assets/skills/user-interview/references/op-briefing.md +51 -0
- package/agent-assets/skills/user-interview/references/op-morning.md +59 -0
- package/agent-assets/skills/user-interview/references/sweep-and-fallback.md +9 -1
- package/agent-assets/skills/user-profile/SKILL.md +54 -74
- package/agent-assets/skills/user-profile/curation.json +2 -2
- package/agent-assets/skills/user-profile/references/character-preferences.md +83 -0
- package/agent-assets/skills/user-profile/seeds/routing-table.seed.json +8 -8
- package/agent-assets/skills/user-profile/seeds/topic-files.seed.json +30 -2
- package/agent-assets/skills/wiki/wiki-ask/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-compile/SKILL.md +4 -5
- package/agent-assets/skills/wiki/wiki-connect/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-graduate/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-ingest/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-lint/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-trace/SKILL.md +0 -1
- package/agent-assets/skills/wiki/wiki-vault-rules/SKILL.md +0 -1
- package/agent-assets/system-prompts/routine-fetch-window.md +78 -0
- package/agent-assets/system-prompts/skill-index-instruction.md +26 -0
- package/agent-assets/task-flows/_partials/calendar-acquire.google_calendar.md +20 -11
- package/agent-assets/task-flows/_partials/calendar-acquire.outlook_calendar.md +18 -9
- package/agent-assets/task-flows/_partials/capture-user-info.md +24 -0
- package/agent-assets/task-flows/_partials/confirm-subflow.md +68 -0
- package/agent-assets/task-flows/_partials/dm-intent.long-horizon.md +35 -0
- package/agent-assets/task-flows/_partials/dm-intent.project.md +391 -0
- package/agent-assets/task-flows/_partials/mail-acquire.gmail.md +20 -11
- package/agent-assets/task-flows/_partials/mail-acquire.outlook_mail.md +18 -9
- package/agent-assets/task-flows/_partials/notion-acquire.notion.md +26 -15
- package/agent-assets/task-flows/browser_task.md +84 -0
- package/agent-assets/task-flows/github.assigned.md +1 -1
- package/agent-assets/task-flows/github.pull_request.review_requested.md +2 -2
- package/agent-assets/task-flows/github.workflow_run.failed.md +2 -2
- package/agent-assets/task-flows/knowledge.import.md +15 -15
- package/agent-assets/task-flows/message.received.dm.md +20 -17
- package/agent-assets/task-flows/message.received.dm_first.md +11 -15
- package/agent-assets/task-flows/routine.custom.md +6 -4
- package/agent-assets/task-flows/routine.evening_review.md +46 -170
- package/agent-assets/task-flows/routine.fetch_window.md +19 -14
- package/agent-assets/task-flows/routine.hourly_check.md +27 -15
- package/agent-assets/task-flows/routine.hourly_check.triage.md +1 -1
- package/agent-assets/task-flows/routine.monthly_review.md +67 -25
- package/agent-assets/task-flows/routine.morning_routine_journal.md +135 -0
- package/agent-assets/task-flows/routine.morning_routine_today.md +673 -0
- package/agent-assets/task-flows/routine.research_cluster_update.md +35 -0
- package/agent-assets/task-flows/routine.research_dispatch.md +38 -0
- package/agent-assets/task-flows/routine.research_offer_dm.md +125 -0
- package/agent-assets/task-flows/routine.research_wiki_summary.md +53 -0
- package/agent-assets/task-flows/routine.roadmap_refresh.md +68 -23
- package/agent-assets/task-flows/routine.today_refresh.md +4 -4
- package/agent-assets/task-flows/routine.user_profile_sweep.md +19 -20
- package/agent-assets/task-flows/routine.weekly_review.md +370 -86
- package/agent-assets/task-flows/schedule.approaching.md +0 -1
- package/agent-assets/task-flows/scheduled.dm.md +13 -13
- package/agent-assets/task-flows/scheduled.task.md +9 -9
- package/agent-assets/task-flows/setup.initial.md +171 -251
- package/agent-assets/task-flows/setup.update.md +2 -2
- package/agent-assets/task-flows/wiki.ingest_url.md +1 -1
- package/agent-assets/templates/README.md +27 -20
- package/agent-assets/templates/_index.md +42 -26
- package/agent-assets/templates/_manifest.json +34 -99
- package/agent-assets/templates/{user → identity}/_index.md +1 -1
- package/agent-assets/templates/identity/expertise.md +9 -0
- package/agent-assets/templates/identity/goals.md +9 -0
- package/agent-assets/templates/identity/people.md +13 -0
- package/agent-assets/templates/identity/personal.md +9 -0
- package/agent-assets/templates/{user → identity}/profile.md +2 -2
- package/agent-assets/templates/identity/work.md +9 -0
- package/agent-assets/templates/{dossiers → knowledge/dossiers}/_index.md +2 -2
- package/agent-assets/templates/{projects → plans/projects}/_active.base +1 -1
- package/agent-assets/templates/policies/_index.md +21 -0
- package/agent-assets/templates/{rules → policies}/journal-export.md +1 -1
- package/agent-assets/templates/policies/journal-format.md +168 -0
- package/agent-assets/templates/{rules/policies → policies/management-captures}/_index.md +2 -2
- package/agent-assets/templates/{rules → policies}/management.md +3 -3
- package/agent-assets/templates/{rules → policies}/mcp.md +1 -1
- package/agent-assets/templates/{rules → policies}/redaction.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/_index.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/evening.md +2 -2
- package/agent-assets/templates/{routines → policies/routines}/hourly.md +1 -1
- package/agent-assets/templates/{routines → policies/routines}/monthly.md +2 -2
- package/bin/aitne.mjs +21 -5
- package/package.json +5 -4
- package/scripts/commands/doctor.mjs +63 -5
- package/scripts/commands/run-now.mjs +187 -0
- package/scripts/commands/verify.mjs +264 -0
- package/scripts/lib/ports.d.mts +27 -0
- package/scripts/lib/ports.mjs +36 -0
- package/scripts/lib/read-api-token.mjs +176 -0
- package/scripts/start.mjs +2 -1
- package/agent-assets/docs/features/lifestyle/travel-time.md +0 -52
- package/agent-assets/docs/features/routines/monthly-review.md +0 -65
- package/agent-assets/skills/management-task-modify/SKILL.md +0 -203
- package/agent-assets/skills/management-task-register/SKILL.md +0 -330
- package/agent-assets/skills/management-task-stop/SKILL.md +0 -166
- package/agent-assets/skills/receipts/SKILL.md +0 -134
- package/agent-assets/skills/travel/SKILL.md +0 -132
- package/agent-assets/skills/travel-time/SKILL.md +0 -158
- package/agent-assets/task-flows/routine.morning_routine.md +0 -322
- package/agent-assets/task-flows/routine.morning_routine_initial.md +0 -204
- package/agent-assets/templates/context-index.md +0 -42
- package/agent-assets/templates/rules/_index.md +0 -19
- package/agent-assets/templates/rules/journal-format.md +0 -61
- package/agent-assets/templates/user/expertise.md +0 -7
- package/agent-assets/templates/user/goals.md +0 -7
- package/agent-assets/templates/user/people.md +0 -7
- package/agent-assets/templates/user/personal.md +0 -7
- package/agent-assets/templates/user/work.md +0 -7
- /package/agent-assets/templates/{agent/journal.md → journal/agent.md} +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/evening.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/hourly.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/monthly.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/morning.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/roadmap.md +0 -0
- /package/agent-assets/templates/{dossiers → knowledge/dossiers}/weekly.md +0 -0
- /package/agent-assets/templates/{projects → plans/projects}/_index.md +0 -0
- /package/agent-assets/templates/{roadmap.md → plans/roadmap.md} +0 -0
- /package/agent-assets/templates/{routines → policies/routines}/morning.md +0 -0
- /package/agent-assets/templates/{routines → policies/routines}/weekly.md +0 -0
- /package/agent-assets/templates/{agent → state}/profile-questions.md +0 -0
- /package/agent-assets/templates/{today.md → state/today.md} +0 -0
|
@@ -3,22 +3,40 @@ schema_version: 1
|
|
|
3
3
|
slug: guides/backup-and-restore
|
|
4
4
|
title: Backup and Restore
|
|
5
5
|
id: backup-and-restore
|
|
6
|
+
aliases:
|
|
7
|
+
- backup
|
|
8
|
+
- restore
|
|
9
|
+
- tarball backup
|
|
10
|
+
- context backup
|
|
6
11
|
category: guides
|
|
7
12
|
summary: |
|
|
8
|
-
Aitne's
|
|
9
|
-
|
|
10
|
-
|
|
13
|
+
Aitne's durable state lives in one directory — PA_DATA_DIR
|
|
14
|
+
(~/.personal-agent), holding the SQLite database and the context
|
|
15
|
+
Markdown vault. Back it up with a tar after stopping the daemon;
|
|
16
|
+
restoring is a tar extract. Secrets live in the OS keychain, not
|
|
17
|
+
this directory, so re-register them after a restore.
|
|
11
18
|
section: backup-and-restore
|
|
12
19
|
tags:
|
|
13
|
-
-
|
|
20
|
+
- guides
|
|
14
21
|
- operations
|
|
22
|
+
- backup
|
|
15
23
|
status: stable
|
|
16
24
|
ask_examples:
|
|
17
25
|
- How do I back up Aitne?
|
|
18
26
|
- Can I restore on a new machine?
|
|
27
|
+
- Why are my API keys gone after restoring a backup?
|
|
19
28
|
locale: en-US
|
|
20
29
|
created: 2026-04-25
|
|
21
|
-
updated: 2026-
|
|
30
|
+
updated: 2026-05-28
|
|
31
|
+
keywords:
|
|
32
|
+
- backup
|
|
33
|
+
- restore
|
|
34
|
+
- tarball
|
|
35
|
+
- PA_DATA_DIR
|
|
36
|
+
- snapshot
|
|
37
|
+
- keychain
|
|
38
|
+
- secrets
|
|
39
|
+
- SQLite
|
|
22
40
|
related:
|
|
23
41
|
- guides/reinstall-cleanly
|
|
24
42
|
- guides/migrate-machines
|
|
@@ -28,25 +46,85 @@ related:
|
|
|
28
46
|
|
|
29
47
|
## Goal
|
|
30
48
|
|
|
31
|
-
Capture all Aitne state in a tar
|
|
49
|
+
Capture all of Aitne's durable state in a single tar archive you can
|
|
50
|
+
restore later — on this machine or a fresh one.
|
|
51
|
+
|
|
52
|
+
## What's in the backup (and what isn't)
|
|
53
|
+
|
|
54
|
+
Everything Aitne persists lives under `PA_DATA_DIR` (default
|
|
55
|
+
`~/.personal-agent`), so backing up that one directory captures it all:
|
|
56
|
+
|
|
57
|
+
- `data/personal_agent.db` — sessions, actions, observations, FTS index
|
|
58
|
+
(plus the `-wal` / `-shm` companion files while the daemon runs).
|
|
59
|
+
- `context/` — the Markdown memory vault (today, roadmap, journal,
|
|
60
|
+
knowledge, identity, policies, …).
|
|
61
|
+
- Logs, PID files, and prompts.
|
|
62
|
+
|
|
63
|
+
**Not in the tar — re-register these after a restore:**
|
|
64
|
+
|
|
65
|
+
- **Secrets** (Anthropic / OpenAI / Google API keys, etc.) live in the
|
|
66
|
+
OS keychain, *not* under `~/.personal-agent`, so a tar never includes
|
|
67
|
+
them.
|
|
68
|
+
- **Messaging pairings** (Slack / Telegram / Discord / WhatsApp tokens)
|
|
69
|
+
are likewise keychain-backed.
|
|
70
|
+
|
|
71
|
+
Both are re-added through the dashboard after restore.
|
|
32
72
|
|
|
33
73
|
## Steps
|
|
34
74
|
|
|
35
|
-
1.
|
|
36
|
-
|
|
37
|
-
|
|
75
|
+
1. **Stop the daemon** so the SQLite write-ahead log is checkpointed and
|
|
76
|
+
the snapshot is consistent:
|
|
77
|
+
|
|
78
|
+
```bash
|
|
79
|
+
aitne stop
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
2. **Create the archive** (capturing the whole data directory in one
|
|
83
|
+
shot):
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
tar -czf personal-agent-backup-$(date +%F).tgz ~/.personal-agent/
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
3. **Restore** by extracting the tar to your home directory, then
|
|
90
|
+
starting the daemon:
|
|
91
|
+
|
|
92
|
+
```bash
|
|
93
|
+
tar -xzf personal-agent-backup-2026-05-28.tgz -C ~/
|
|
94
|
+
aitne start
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Schema migrations run automatically on the first boot (see below), so
|
|
98
|
+
an older DB is brought up to the current shape without extra steps.
|
|
99
|
+
|
|
100
|
+
4. **Re-register secrets and re-pair messaging** through the dashboard —
|
|
101
|
+
they were never in the tar.
|
|
38
102
|
|
|
39
103
|
## Verification
|
|
40
104
|
|
|
41
|
-
-
|
|
105
|
+
- `aitne status` reports the daemon healthy.
|
|
106
|
+
- The Activity feed shows your historical rows after restore.
|
|
42
107
|
- Context files match the originals.
|
|
43
108
|
|
|
44
109
|
## If It Fails
|
|
45
110
|
|
|
46
|
-
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
111
|
+
- **Schema mismatch on restore.** Aitne ships forward-only schema
|
|
112
|
+
migrations applied automatically at boot (see
|
|
113
|
+
[Schema Migration](../glossary.md#schema-migration)), so a restored DB
|
|
114
|
+
from an older daemon version usually just works — the migration runner
|
|
115
|
+
brings it up to the current shape on the next start. Only fall back to
|
|
116
|
+
dropping the DB (see [Reinstall Cleanly](reinstall-cleanly.md)) if the
|
|
117
|
+
daemon refuses to start *after* you've checked the log
|
|
118
|
+
(`aitne logs`) for a real migration error.
|
|
119
|
+
- **The agent can't reach its backends after restore.** That's the
|
|
120
|
+
missing keychain secrets — re-add your API keys in the dashboard
|
|
121
|
+
(Step 4). The DB and context restore fine without them.
|
|
122
|
+
|
|
123
|
+
## Moving to a different machine?
|
|
124
|
+
|
|
125
|
+
This guide backs up and restores in place. To copy state to another host
|
|
126
|
+
(including the keychain re-registration walkthrough), follow
|
|
127
|
+
[Migrate Machines](migrate-machines.md).
|
|
50
128
|
|
|
51
129
|
## Related
|
|
52
130
|
|
|
@@ -15,9 +15,10 @@ summary: |
|
|
|
15
15
|
to tune the threshold.
|
|
16
16
|
section: budget-and-cost-for-wiki
|
|
17
17
|
tags:
|
|
18
|
-
-
|
|
18
|
+
- guides
|
|
19
19
|
- wiki
|
|
20
20
|
- cost
|
|
21
|
+
- approval
|
|
21
22
|
status: stable
|
|
22
23
|
ask_examples:
|
|
23
24
|
- How much does !compile full cost?
|
|
@@ -26,62 +27,95 @@ ask_examples:
|
|
|
26
27
|
- What does the pre-compile snapshot do?
|
|
27
28
|
locale: en-US
|
|
28
29
|
created: 2026-05-12
|
|
29
|
-
updated: 2026-05-
|
|
30
|
+
updated: 2026-05-28
|
|
31
|
+
keywords:
|
|
32
|
+
- wiki budget
|
|
33
|
+
- wiki cost
|
|
34
|
+
- wiki cost gate
|
|
35
|
+
- wiki approval
|
|
36
|
+
- compile cost
|
|
37
|
+
- compile full
|
|
30
38
|
related:
|
|
31
39
|
- features/wiki/overview
|
|
32
40
|
- features/wiki/commands
|
|
41
|
+
- features/wiki/cost-and-approval
|
|
33
42
|
- concepts/costs-and-quotas
|
|
34
43
|
- troubleshooting/wiki-ingest-full-blocked
|
|
44
|
+
process_keys:
|
|
45
|
+
- wiki.compile
|
|
46
|
+
- wiki.ingest_url
|
|
47
|
+
- wiki.ask
|
|
48
|
+
api_endpoints:
|
|
49
|
+
- PATCH /api/wiki/workspaces/:workspace
|
|
50
|
+
- POST /api/approvals/:id/approve
|
|
51
|
+
- POST /api/approvals/:id/deny
|
|
35
52
|
ui_anchors:
|
|
36
53
|
- /settings/wiki
|
|
37
|
-
- /
|
|
54
|
+
- /
|
|
38
55
|
---
|
|
39
56
|
|
|
40
57
|
# Wiki Budgets and Cost
|
|
41
58
|
|
|
42
59
|
The wiki ships with three cost knobs you can tune in
|
|
43
|
-
**Settings → Wiki
|
|
44
|
-
|
|
45
|
-
1. **Per-command model selector** for each
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
`wiki.
|
|
60
|
+
**Settings → Wiki** (`/settings/wiki`):
|
|
61
|
+
|
|
62
|
+
1. **Per-command model selector** for each wiki process. The model
|
|
63
|
+
picker covers the full set: `wiki.ingest_url`, `wiki.compile`,
|
|
64
|
+
`wiki.ask`, plus the operational triad `wiki.lint`, `wiki.trace`,
|
|
65
|
+
`wiki.connect`. Each defaults to your main backend at the medium
|
|
66
|
+
tier; downgrade `wiki.ingest_url` to a lite tier if you ingest a
|
|
67
|
+
lot of URLs.
|
|
49
68
|
2. **Per-process budget cap** (`max_budget_usd` on each row). The
|
|
50
69
|
dispatcher's per-session budget envelope is the enforcer.
|
|
51
70
|
3. **Per-workspace `!compile full` approval threshold** (default
|
|
52
|
-
$2.00). The
|
|
53
|
-
at 0.5× / 1× / 2× the
|
|
54
|
-
pessimistic estimate breaches the threshold, the bang handler
|
|
71
|
+
$2.00, range $0–$100). The cost estimator brackets the expected
|
|
72
|
+
spend at 0.5× / 1× / 2× the estimated input-token count; if the
|
|
73
|
+
pessimistic (2×) estimate breaches the threshold, the bang handler
|
|
55
74
|
escalates to the approval queue instead of running autonomously.
|
|
56
75
|
|
|
57
76
|
## What the Estimator Does
|
|
58
77
|
|
|
59
78
|
`!compile full` is the most expensive wiki command because a full
|
|
60
79
|
rebuild touches every raw note. The estimator is **pure JS** — it
|
|
61
|
-
does not spawn an agent
|
|
80
|
+
does not spawn an agent (spawning one to estimate would itself burn
|
|
81
|
+
budget). It walks the `10_raw/` layer, approximates each file's token
|
|
82
|
+
count from its on-disk character count, sums the total, and brackets:
|
|
62
83
|
|
|
63
84
|
```
|
|
64
|
-
expected_usd =
|
|
85
|
+
expected_usd = total_estimated_input_tokens / 1000 × $0.003
|
|
65
86
|
optimistic = 0.5 × expected
|
|
66
87
|
pessimistic = 2.0 × expected
|
|
67
88
|
```
|
|
68
89
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
90
|
+
Per-file token approximation is script-aware: ~4 characters per token
|
|
91
|
+
for Latin/prose, ~1.5 for majority-CJK files, with a 200-token floor
|
|
92
|
+
per file so empty or one-line stubs still account for the fixed
|
|
93
|
+
per-call overhead (system prompt, skills bundle, tool docs). The unit
|
|
94
|
+
cost (`$0.003` per 1k tokens) matches Claude Sonnet 4.6's ~$3 /
|
|
95
|
+
Mtoken input price. The bracket lets you see a worst case before
|
|
96
|
+
approving.
|
|
97
|
+
|
|
98
|
+
> The dashboard surfaces the top raw files by estimated token count,
|
|
99
|
+
> so you can see which sources dominate the bill before approving.
|
|
100
|
+
> An older flat heuristic (`raw_count × 1500 tokens`) survives as an
|
|
101
|
+
> opt-in fallback for deterministic banner copy, but the default is
|
|
102
|
+
> the per-file character scan described above.
|
|
72
103
|
|
|
73
104
|
## Where the Gate Fires
|
|
74
105
|
|
|
75
106
|
- **Below threshold**: the compile runs autonomously and you get a
|
|
76
107
|
completion DM with actual spend.
|
|
77
108
|
- **Above threshold**: the bang handler inserts an `agent_schedule`
|
|
78
|
-
row with `task_type='approval'
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
109
|
+
row with `task_type='approval'`, DMs you the estimate, and pauses.
|
|
110
|
+
The request shows up as an **Approvals** card on the dashboard home
|
|
111
|
+
page (`/`); the `/settings/wiki` page also points you there.
|
|
112
|
+
Clicking **Approve** flips the row to `task_type='approved_task'`
|
|
113
|
+
and the scheduler picks it up — only then is the pre-compile git
|
|
114
|
+
snapshot taken (see below) and the compile session spawned.
|
|
82
115
|
|
|
83
116
|
If you change your mind, hit **Deny** on the approval card — the row
|
|
84
|
-
flips to `skipped
|
|
117
|
+
flips to `skipped`, no git commit is made, and no agent session is
|
|
118
|
+
spawned.
|
|
85
119
|
|
|
86
120
|
## Git Pre-Compile Snapshot
|
|
87
121
|
|
|
@@ -100,9 +134,12 @@ deterministic so you can roll back with `git reset --hard HEAD~1` if
|
|
|
100
134
|
the compile produces a surprise. The `--no-verify` flag is not used —
|
|
101
135
|
your pre-commit hooks run as normal.
|
|
102
136
|
|
|
103
|
-
|
|
104
|
-
"
|
|
105
|
-
|
|
137
|
+
The estimate DM tells you which snapshot path applies:
|
|
138
|
+
**"will commit before compile starts"** (clean repo), **"not taken
|
|
139
|
+
(no git repo)"**, **"disabled by setting"** (auto-commit off), or
|
|
140
|
+
**"not applicable"** for internal-mode workspaces — those recover via
|
|
141
|
+
`md_file_snapshots` instead of git. When no git backup will be taken,
|
|
142
|
+
you can decide whether to add one before approving.
|
|
106
143
|
|
|
107
144
|
## Tuning the Threshold
|
|
108
145
|
|
|
@@ -3,6 +3,11 @@ schema_version: 1
|
|
|
3
3
|
slug: guides/build-your-wiki
|
|
4
4
|
title: Build Your Wiki
|
|
5
5
|
id: build-your-wiki
|
|
6
|
+
aliases:
|
|
7
|
+
- build wiki
|
|
8
|
+
- wiki walkthrough
|
|
9
|
+
- first wiki
|
|
10
|
+
- ingest compile
|
|
6
11
|
category: guides
|
|
7
12
|
summary: |
|
|
8
13
|
Enable the internal wiki, send your first URL, compile the raw
|
|
@@ -11,18 +16,37 @@ section: build-your-wiki
|
|
|
11
16
|
tags:
|
|
12
17
|
- guide
|
|
13
18
|
- wiki
|
|
19
|
+
- knowledge
|
|
14
20
|
status: stable
|
|
15
21
|
ask_examples:
|
|
16
22
|
- How do I start using the wiki?
|
|
17
23
|
- How do I add my first source to the wiki?
|
|
24
|
+
- How do I compile my ingested notes into wiki articles?
|
|
18
25
|
locale: en-US
|
|
19
26
|
created: 2026-05-12
|
|
20
|
-
updated: 2026-05-
|
|
27
|
+
updated: 2026-05-28
|
|
28
|
+
keywords:
|
|
29
|
+
- wiki
|
|
30
|
+
- build wiki
|
|
31
|
+
- "!ingest"
|
|
32
|
+
- "!compile"
|
|
33
|
+
- "!ask"
|
|
34
|
+
- workspace
|
|
35
|
+
- first day wiki
|
|
36
|
+
ui_anchors:
|
|
37
|
+
- /wiki
|
|
38
|
+
- /settings/wiki
|
|
39
|
+
process_keys:
|
|
40
|
+
- wiki.ingest_url
|
|
41
|
+
- wiki.compile
|
|
42
|
+
- wiki.ask
|
|
21
43
|
related:
|
|
22
44
|
- features/wiki/overview
|
|
23
45
|
- features/wiki/commands
|
|
24
46
|
- guides/use-an-existing-obsidian-vault
|
|
25
47
|
- guides/budget-and-cost-for-wiki
|
|
48
|
+
prerequisites:
|
|
49
|
+
- features/messaging/pairing-and-magic-phrase
|
|
26
50
|
---
|
|
27
51
|
|
|
28
52
|
# Build Your Wiki
|
|
@@ -35,7 +59,8 @@ article, and run a question against the result.
|
|
|
35
59
|
## Prerequisites
|
|
36
60
|
|
|
37
61
|
- A paired messaging channel (Telegram, Slack, Discord, WhatsApp, or
|
|
38
|
-
dashboard chat)
|
|
62
|
+
dashboard chat) — see
|
|
63
|
+
[Pairing and the Magic Phrase](../messaging/pairing-and-magic-phrase.md).
|
|
39
64
|
- The daemon is running and the dashboard is reachable.
|
|
40
65
|
|
|
41
66
|
## Where you'll work in the dashboard
|
|
@@ -60,10 +85,12 @@ you enable a workspace, so you do not need to remember the URL.
|
|
|
60
85
|
1. Click **My Life → Wiki** in the sidebar (`/wiki`). The page shows
|
|
61
86
|
a "Wiki not enabled" card with an **Enable Wiki** button —
|
|
62
87
|
clicking it jumps you to `/settings/wiki`.
|
|
63
|
-
2. On the settings page, click **Enable
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
88
|
+
2. On the settings page, click **Enable internal wiki**. The daemon
|
|
89
|
+
creates the workspace under your context vault at
|
|
90
|
+
`knowledge/wiki/` (the daemon-owned default root) and seeds the
|
|
91
|
+
skeleton: `10_raw/`, `20_wiki/`, `30_outputs/`, `90_meta/` plus
|
|
92
|
+
`90_meta/taxonomy.md` and the schema templates. (To point at an
|
|
93
|
+
existing Obsidian vault instead, follow
|
|
67
94
|
[Use An Existing Obsidian Vault](use-an-existing-obsidian-vault.md).)
|
|
68
95
|
3. The sidebar's **My Life → Wiki** entry now lands on a workspace
|
|
69
96
|
summary instead of the disabled CTA. Open it to confirm the root
|
|
@@ -6,42 +6,103 @@ id: change-which-model-handles-x
|
|
|
6
6
|
aliases:
|
|
7
7
|
- per-process tier
|
|
8
8
|
- per-process model
|
|
9
|
+
- pin a process key
|
|
9
10
|
category: guides
|
|
10
11
|
summary: |
|
|
11
|
-
Pin a
|
|
12
|
-
example,
|
|
12
|
+
Pin a single ProcessKey to a non-default backend or model tier — for
|
|
13
|
+
example, move the evening review onto Opus (high tier) for deeper
|
|
14
|
+
reasoning, or run a routine on Codex while Claude stays the default.
|
|
13
15
|
section: change-which-model-handles-x
|
|
14
16
|
tags:
|
|
15
17
|
- guide
|
|
16
18
|
- backends
|
|
19
|
+
- operations
|
|
20
|
+
- routing
|
|
17
21
|
status: stable
|
|
18
22
|
ask_examples:
|
|
19
|
-
- How do I make
|
|
23
|
+
- How do I make one routine use Opus instead of Sonnet?
|
|
24
|
+
- How do I pin the evening review to a different backend?
|
|
25
|
+
- Can I change the model for just one ProcessKey?
|
|
20
26
|
locale: en-US
|
|
21
27
|
created: 2026-04-25
|
|
22
|
-
updated: 2026-
|
|
28
|
+
updated: 2026-05-28
|
|
29
|
+
keywords:
|
|
30
|
+
- per-process model
|
|
31
|
+
- /settings/models
|
|
32
|
+
- process binding
|
|
33
|
+
- tier override
|
|
34
|
+
- change model
|
|
35
|
+
- pin process key
|
|
23
36
|
related:
|
|
24
37
|
- guides/switch-default-backend
|
|
25
38
|
- concepts/backends-and-tiers
|
|
39
|
+
- concepts/process-keys
|
|
40
|
+
ui_anchors:
|
|
41
|
+
- /settings/models
|
|
42
|
+
- /activity
|
|
43
|
+
process_keys:
|
|
44
|
+
- routine.morning_routine
|
|
45
|
+
- routine.evening_review
|
|
46
|
+
- message.dm
|
|
47
|
+
- dashboard.docs_qa
|
|
48
|
+
- delegated_task_heavy
|
|
49
|
+
config_keys:
|
|
50
|
+
- delegatedTaskHeavyEnabled
|
|
26
51
|
---
|
|
27
52
|
|
|
28
53
|
# Change Which Model Handles X
|
|
29
54
|
|
|
30
55
|
## Goal
|
|
31
56
|
|
|
32
|
-
Override the default
|
|
57
|
+
Override the default backend or model tier for a **single** ProcessKey
|
|
58
|
+
without changing the global default. Use this when one surface needs a
|
|
59
|
+
stronger (or cheaper) model than the seeded default — for example,
|
|
60
|
+
pinning the evening review to Opus (high tier), or pushing a noisy
|
|
61
|
+
delegated routine onto Gemini to save Claude quota.
|
|
33
62
|
|
|
34
63
|
## Steps
|
|
35
64
|
|
|
36
65
|
1. Open `/settings/models`.
|
|
37
|
-
2. Find the ProcessKey row in the table.
|
|
38
|
-
|
|
39
|
-
|
|
66
|
+
2. Find the ProcessKey row in the per-process table (e.g.
|
|
67
|
+
`routine.evening_review`).
|
|
68
|
+
3. Set its **main backend** and **tier** explicitly. The tier maps to a
|
|
69
|
+
model class — `lite` → Haiku-class, `medium` → Sonnet-class,
|
|
70
|
+
`high` → Opus-class. Optionally set a **fallback** backend too.
|
|
71
|
+
4. Save. The row is now marked operator-edited and will keep your pin
|
|
72
|
+
through a defaults reset (only an install-time `force` re-seed
|
|
73
|
+
overwrites it).
|
|
74
|
+
|
|
75
|
+
## Concrete Example
|
|
76
|
+
|
|
77
|
+
To give the evening review deeper reasoning, set
|
|
78
|
+
`routine.evening_review` → main `claude`, tier `high`. The next evening
|
|
79
|
+
run resolves to **Opus 4.8** instead of the default Sonnet 4.6. The
|
|
80
|
+
execution budget for that run also scales with the tier (high tier
|
|
81
|
+
carries a larger turn / cost envelope than medium).
|
|
40
82
|
|
|
41
83
|
## Verification
|
|
42
84
|
|
|
43
|
-
- The next fire of that ProcessKey shows the new model in
|
|
85
|
+
- The next fire of that ProcessKey shows the new backend and model in
|
|
86
|
+
the **Activity** event detail (after fallback resolution).
|
|
87
|
+
|
|
88
|
+
## Caveats
|
|
89
|
+
|
|
90
|
+
- **`dashboard.docs_qa` is tier-locked to `medium`** — a high/lite pin
|
|
91
|
+
on that row is ignored by the router. It also inherits its backend
|
|
92
|
+
from `message.dm`'s pin.
|
|
93
|
+
- **High tier is opt-in, not auto-selected.** No install-time-seeded
|
|
94
|
+
surface defaults to high; the only `high`-tagged ProcessKey shipped is
|
|
95
|
+
`delegated_task_heavy`, gated behind the `delegatedTaskHeavyEnabled`
|
|
96
|
+
config flag. Any *other* ProcessKey can still be pinned to high here.
|
|
97
|
+
- **On Codex and Gemini there is no separately-seeded high model** —
|
|
98
|
+
their high tier collapses to the medium model, so pinning those
|
|
99
|
+
backends to high won't change the model unless you pick a specific
|
|
100
|
+
higher model in the row.
|
|
101
|
+
- To change the backend for *every* ProcessKey at once, use the global
|
|
102
|
+
default instead — see Related.
|
|
44
103
|
|
|
45
104
|
## Related
|
|
46
105
|
|
|
47
106
|
- [Switch the Default Backend](switch-default-backend.md)
|
|
107
|
+
- [Backends and Tiers](../concepts/backends-and-tiers.md)
|
|
108
|
+
- [Process Keys](../concepts/process-keys.md)
|
|
@@ -3,56 +3,121 @@ schema_version: 1
|
|
|
3
3
|
slug: guides/connect-a-new-mail-account
|
|
4
4
|
title: Connect a New Mail Account
|
|
5
5
|
id: connect-a-new-mail-account
|
|
6
|
+
aliases:
|
|
7
|
+
- connect mail
|
|
8
|
+
- add mail account
|
|
9
|
+
- imap setup
|
|
10
|
+
- gmail setup
|
|
11
|
+
- outlook setup
|
|
6
12
|
category: guides
|
|
7
13
|
summary: |
|
|
8
|
-
Add a Gmail
|
|
9
|
-
integration. Each provider
|
|
14
|
+
Add a Gmail, Outlook, Yahoo, or iCloud mailbox to the mail
|
|
15
|
+
integration. Each provider authenticates differently: Gmail rides
|
|
16
|
+
the primary Google sign-in, Outlook uses OAuth, and Yahoo/iCloud
|
|
17
|
+
use an app password.
|
|
10
18
|
section: connect-a-new-mail-account
|
|
11
19
|
tags:
|
|
12
20
|
- guide
|
|
13
21
|
- mail
|
|
22
|
+
- integrations
|
|
14
23
|
status: stable
|
|
15
24
|
ask_examples:
|
|
16
25
|
- How do I add another Gmail account?
|
|
17
26
|
- What mail providers does Aitne support?
|
|
27
|
+
- How do I connect an Outlook mailbox?
|
|
18
28
|
locale: en-US
|
|
19
29
|
created: 2026-04-25
|
|
20
|
-
updated: 2026-
|
|
30
|
+
updated: 2026-05-28
|
|
31
|
+
keywords:
|
|
32
|
+
- mail
|
|
33
|
+
- imap
|
|
34
|
+
- gmail
|
|
35
|
+
- outlook
|
|
36
|
+
- yahoo
|
|
37
|
+
- icloud
|
|
38
|
+
- mail provider
|
|
39
|
+
- OAuth
|
|
40
|
+
- app password
|
|
21
41
|
related:
|
|
22
42
|
- features/integrations/mail
|
|
43
|
+
ui_anchors:
|
|
44
|
+
- /connections/mail
|
|
45
|
+
api_endpoints:
|
|
46
|
+
- /api/mail/accounts
|
|
47
|
+
- /api/mail/accounts/device-code
|
|
48
|
+
- /api/config/mail/app-password
|
|
49
|
+
config_keys:
|
|
50
|
+
- enabledMailProviders
|
|
51
|
+
context_files:
|
|
52
|
+
- state/today.md
|
|
23
53
|
---
|
|
24
54
|
|
|
25
55
|
# Connect a New Mail Account
|
|
26
56
|
|
|
27
57
|
## Goal
|
|
28
58
|
|
|
29
|
-
Wire a new mailbox into Aitne so the agent can read, label,
|
|
59
|
+
Wire a new mailbox into Aitne so the agent can read, label, classify,
|
|
30
60
|
and search it.
|
|
31
61
|
|
|
62
|
+
## Supported providers
|
|
63
|
+
|
|
64
|
+
The mail registry recognizes exactly four provider kinds — `gmail`,
|
|
65
|
+
`outlook`, `yahoo`, `icloud`. It deliberately stops at hosted
|
|
66
|
+
providers, so there is no separate "generic IMAP server" kind. Each
|
|
67
|
+
kind authenticates differently:
|
|
68
|
+
|
|
69
|
+
| Provider | How it connects |
|
|
70
|
+
|---|---|
|
|
71
|
+
| **Gmail** | Rides the primary Google sign-in (`/config/google-auth`). Extra Gmail accounts beyond the primary identity are not implemented yet. |
|
|
72
|
+
| **Outlook** | OAuth — a browser loopback flow, with a device-code fallback for headless machines. |
|
|
73
|
+
| **Yahoo** | App password (IMAP). |
|
|
74
|
+
| **iCloud** | App password (IMAP). |
|
|
75
|
+
|
|
32
76
|
## Prerequisites
|
|
33
77
|
|
|
34
|
-
-
|
|
78
|
+
- For **Outlook**: the Outlook client config must already be set
|
|
79
|
+
(`PUT /api/config/mail/outlook/client-config`).
|
|
80
|
+
- For **Yahoo / iCloud**: generate a provider-specific app password
|
|
81
|
+
first — your regular login password will not work over IMAP.
|
|
35
82
|
|
|
36
83
|
## Steps
|
|
37
84
|
|
|
38
85
|
1. Open `/connections/mail`.
|
|
39
|
-
2. Click "Add account".
|
|
40
|
-
3.
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
86
|
+
2. Click "Add account" and pick the provider kind.
|
|
87
|
+
3. Authenticate for that kind:
|
|
88
|
+
- **Gmail** — connect the primary Google account from the setup or
|
|
89
|
+
connections flow (`/config/google-auth`). It then appears on the
|
|
90
|
+
unified mail surface automatically; you do not add it as a
|
|
91
|
+
separate mail account.
|
|
92
|
+
- **Outlook** — step through the OAuth browser flow. On a headless
|
|
93
|
+
machine (SSH / WSL), use the device-code fallback, which prints a
|
|
94
|
+
code to enter at a verification URL.
|
|
95
|
+
- **Yahoo / iCloud** — paste the email address and the app password.
|
|
96
|
+
4. Save. Registration succeeds regardless of the enabled-providers
|
|
97
|
+
setting (`enabledMailProviders`); the account goes live only when
|
|
98
|
+
you flip its **Enable** toggle on the mail card.
|
|
99
|
+
5. The first poll runs within a minute of being enabled.
|
|
46
100
|
|
|
47
101
|
## Verification
|
|
48
102
|
|
|
49
|
-
- The account row turns
|
|
103
|
+
- The account row turns healthy on the auth-health card.
|
|
50
104
|
- The mail count updates on `/connections/mail`.
|
|
51
105
|
|
|
52
106
|
## If It Fails
|
|
53
107
|
|
|
54
|
-
- OAuth
|
|
55
|
-
|
|
108
|
+
- **Outlook OAuth never returns** — the loopback flow binds an
|
|
109
|
+
ephemeral port on `127.0.0.1`, so a fixed-port redirect mismatch is
|
|
110
|
+
not the cause. Confirm the browser actually opened and completed the
|
|
111
|
+
redirect; on a headless host switch to the device-code flow instead.
|
|
112
|
+
- **Outlook add returns "client config missing"** — set the Outlook
|
|
113
|
+
client config (`PUT /api/config/mail/outlook/client-config`) before
|
|
114
|
+
adding the account.
|
|
115
|
+
- **Yahoo / iCloud login rejected** — re-check the address and the app
|
|
116
|
+
password (not your normal account password); regenerate the app
|
|
117
|
+
password if it still fails.
|
|
118
|
+
- **Adding a second Gmail account fails** — only the primary Google
|
|
119
|
+
identity is supported today; additional Gmail accounts are not yet
|
|
120
|
+
implemented.
|
|
56
121
|
|
|
57
122
|
## Related
|
|
58
123
|
|