AI Secretary — Privacy Policy
Effective date: 2026-08-05 Applies to: AI Secretary for iOS / iPadOS 1.0 (Bundle ID: com.jackdark425.aisecretary)
In one sentence
AI Secretary is a bring-your-own-backend chat client. There is no companion cloud service, the developer operates no server, and the developer receives none of your data. The address you type into the app is where your messages go — and the app sends them nowhere else.
1. The developer cannot see your data
This isn’t a promise; it’s how the app is built:
- There is no default server and no bundled API key. A fresh install from the App Store or TestFlight starts unbound — until you point it at a backend of your own, it has nothing to connect to.
- There are no third-party SDKs of any kind — no analytics, no crash reporting, no ads, no attribution. The project has zero third-party dependencies.
- The app does not track you. Its shipped privacy manifest (PrivacyInfo.xcprivacy) declares tracking as false, with empty lists for collected data types and tracking domains — an empty list is a positive declaration of “none”, not an omission.
- The developer has no server that could receive your data, so there is nothing to store, share, or sell.
2. What the app stores on your device
Everything below lives inside the app’s sandbox on your own iPhone or iPad:
| What | Where | Notes |
|---|---|---|
| Your backend’s API key | iOS Keychain | One entry per connection, readable only by this app. Not synced to iCloud Keychain |
| Your list of connections | UserDefaults | Name, kind, address, model name. Never the key |
| Preferences | UserDefaults | Theme, export format, attachment character limit, speech rate, send-on-return, tool-approval policy, whether images are resent on follow-ups |
| Local conversation history | App sandbox, Application Support/Conversations/ | Only for stateless backends (Claude / OpenAI / LangServe), which keep no session server-side, so the transcript has to live on the device |
| Cache of server-side sessions | App sandbox, Application Support/TranscriptCache/ | Only for backends that keep sessions themselves (e.g. Hermes), so old conversations stay readable offline |
| Images you sent | App sandbox, Application Support/Media/ | Capped at 500 MB; oldest images are evicted past that |
| Document copies and exports | App sandbox, Documents/收件/ and Documents/导出/ | Copies of documents you attached, plus Word / PowerPoint / Markdown / plain-text files the app generated |
That last row is deliberately visible in the system Files app (the app declares file sharing and documents-in-place), so you can reach, copy, or delete those files without opening AI Secretary at all.
If you use iCloud Backup or back your device up to a computer, this data is included under Apple’s normal backup rules — that is iOS behaviour, not something the app does separately.
3. What leaves the device, and where it goes
Only to the backend address you configured. Nowhere else. No third parties.
When you send a message, the following goes to your chosen endpoint:
- the text you typed;
- your attached documents, after they are parsed into text on the device (PDF, Word, PowerPoint, Markdown and plain text are all extracted locally; the original file is not uploaded, and anything past your configured character limit is truncated, with the truncation stated in the prompt);
- images you attached;
- earlier messages in the same conversation, so the model has context;
- your API key, for authentication
(
Authorization: Bearer …for Hermes / OpenAI-compatible / LangServe;x-api-keyfor Anthropic).
The app has no other network egress. As corroboration: Mermaid diagrams in Markdown replies are drawn by a bundled rendering engine, locally, with no CDN and no network access at all — which is why diagrams still render on a private network with no route to the internet.
On transport encryption: the app permits plain-HTTP
endpoints, because self-hosted backends frequently run on a private
network without a TLS certificate. That means if the address you
entered starts with http://, that traffic is not
encrypted. Prefer https://, or keep the backend
behind a private network such as Tailscale or WireGuard.
4. Your chosen backend has its own privacy policy
This matters: AI Secretary only delivers your messages to the address you specify. What happens after they arrive is determined by that server and its operator — not by this app, and not by the developer, who has no visibility or control over it.
- If you connect to Anthropic, OpenAI, or another commercial API, their privacy policy and data-retention terms govern that relationship. It has nothing to do with this app.
- If you connect to something you run yourself (for example a Hermes gateway), what is stored, for how long, and who can read it is entirely your decision.
- Choosing a backend, reading its terms, and taking responsibility for what you send to it are the user’s own responsibility.
One further note: some backends this app supports (a Hermes agent gateway, for instance) can execute tools, run shell commands, or drive other devices on the server side. The app’s “tool approval” setting only decides who answers an approval request; the actual gate is on the server. Only bind servers you trust.
5. Binding payloads and key safety
- A binding QR code and an
aisecretary://link contain your API key. The QR screen says so on screen: don’t screenshot it and send it to anyone. - The app never binds an
aisecretary://link silently. Any web page or message can open such a URL, so the app decodes it but does not apply it — it always shows a confirmation screen naming the destination first, and only writes to the Keychain once you agree. Scanned QR codes are confirmed the same way. - Keys are stored in the iOS Keychain, accessible only after the device’s first unlock, and are not synced to iCloud.
6. Permissions
The app requests these only when you use the corresponding feature. Declining all of them still leaves a fully usable typed chat:
- Camera — only to scan a binding QR code. The scanner recognizes QR codes only and stops at the first one; it does not take photos, record video, or save any frames.
- Photos — two uses: picking an image so the app can find a binding QR code inside it, and attaching pictures to a message. The system picker hands over only the images you select; the app does not enumerate your library.
- Microphone and Speech Recognition — voice input only. The app uses Apple’s Speech framework and requests on-device recognition wherever the device supports it; if your device cannot do on-device recognition for the current language, iOS may complete the recognition on Apple’s servers under Apple’s own privacy policy. Either way, this app stores no audio and sends no audio to your backend or to anyone else — only the recognized text, and only after you press send.
- Text-to-speech (no permission required) — replies are read aloud by the system speech synthesizer, on the device, with no network access.
- Files — reading documents you explicitly choose, and keeping a copy in the app’s inbox folder.
7. Children’s privacy
This app is not directed at children under 13 (or the equivalent age in your jurisdiction), and does not knowingly collect information from children — indeed, it collects no information from anyone. Using it requires configuring your own AI backend, which generally requires a paid service account or a self-hosted server held by an adult.
8. Retention and deletion
The developer holds none of your data, so there is no developer-side retention period at all. Everything on your device is under your control:
- Delete one conversation — swipe it in the conversation list and delete. This removes its local record, its local cache, and any images sent in it; if the backend keeps sessions server-side, deletion is requested there too.
- Clear local files and caches — Menu ▸ Preferences ▸ Storage ▸ “Clear local files and caches”. This deletes everything in the inbox and exports folders, all cached images, and the local cache of server-side transcripts. It is irreversible, and the confirmation tells you how much will be deleted first. (Note: this does not cover local conversation history for stateless backends — use “delete one conversation” above for those, or delete the app.)
- Delete a backend’s key — swipe the connection in Connection Settings and delete. Removing a connection also clears its Keychain entry.
- Delete a single file — Menu ▸ Files, or delete it directly in the system Files app.
- Delete everything — removing the app deletes its entire sandbox container (conversations, caches, files, preferences). If you want to be certain the stored keys are gone too, delete all connections inside the app first, then delete the app.
- Server-side data — if your backend keeps sessions, that data lives on your server and must be deleted there, by whatever means that service provides. Nothing this app does can reach it.
9. Changes to this policy
If this policy changes materially, this page is updated and the effective date at the top is updated with it. Because the app collects no data and has no accounts, there is no way to notify you — please treat the latest version of this page as authoritative.
10. Contact
Questions about this policy, or about any data-related right you wish to exercise:
jackdark425@qq.com
(Worth stating plainly: since the developer holds none of your data, “access”, “export” and “deletion” requests can only be carried out by you, on your own device. Section 8 above is the complete set of ways to do it.) ```
AI 秘书 隐私政策
生效日期:2026-08-05 适用版本:AI 秘书 iOS / iPadOS 1.0(Bundle ID: com.jackdark425.aisecretary)
一句话说明
AI 秘书是一个「自带后端」的聊天客户端。它没有配套的云服务,开发者不运营任何服务器, 也收不到你的任何数据。你在 App 里填的地址,就是你的消息去的地方;除此之外,这个 App 不往任何别的地方发东西。
一、开发者拿不到你的数据
这不是承诺,是这个 App 的结构决定的:
- App 里没有内置的默认服务器,也没有内置密钥。从 App Store 或 TestFlight 装好之后,它是「未绑定」状态,在你自己填一个后端地址之前,它连不上任何东西。
- App 里没有集成任何第三方 SDK(无统计、无崩溃上报、无广告、无归因),整个工程 零第三方依赖。
- App 不做用户跟踪,随包提交的隐私清单(PrivacyInfo.xcprivacy)里, 「跟踪」为否,「收集的数据类型」和「跟踪域名」均为空列表——空列表是明确的「没有」, 不是漏填。
- 开发者没有服务器可以接收数据,因此也谈不上保存、共享或出售你的数据。
二、这个 App 在你设备上保存了什么
全部保存在你 iPhone / iPad 本机的 App 沙盒内:
| 内容 | 存在哪里 | 说明 |
|---|---|---|
| 后端的 API 密钥 | iOS 钥匙串(Keychain) | 每个连接一条,仅本 App 可读。未开启 iCloud 钥匙串同步 |
| 连接列表 | UserDefaults | 名称、类型、地址、模型名。不含密钥 |
| 偏好设置 | UserDefaults | 主题、导出格式、附件字数上限、朗读语速、回车发送、工具批准策略、追问时是否重发图片 |
| 本机对话记录 | App 沙盒 Application Support/Conversations/ | 只有无状态后端(Claude / OpenAI / LangServe)会用到——它们服务端不存会话,历史必须存在本机 |
| 服务端会话的本地缓存 | App 沙盒 Application Support/TranscriptCache/ | 只有 Hermes 这类服务端保存会话的后端会用到,断网时也能翻旧对话 |
| 你发出去的图片 | App 沙盒 Application Support/Media/ | 上限 500 MB,超出后自动删最旧的 |
| 文档副本与导出文件 | App 沙盒 Documents/收件/、Documents/导出/ | 你附加过的文档的副本,以及 App 生成的 Word / PowerPoint / Markdown / 纯文本导出件 |
关于最后一项:这两个目录在系统「文件」App 里可见(这是 App 主动声明的),所以你可以 不打开 AI 秘书也能拿到、复制或删除这些文件。
以上内容如果你开启了 iPhone 的 iCloud 备份或做过电脑端备份,会按 Apple 的常规规则 一并进入备份——这由 iOS 决定,不是 App 单独的行为。
三、什么会被发送出去,发给谁
只发给你自己填的那个后端地址,不发给任何第三方。
发起一次对话时,会发送给你指定的后端:
- 你输入的文字;
- 你附加的文档,在本机解析成文字之后的内容(PDF / Word / PowerPoint / Markdown / 纯文本都是在设备上抽取文字的,原始文件不上传,超过你设定的字数上限的部分会被截断, 并在提示词里注明已截断);
- 你附加的图片;
- 这次对话此前的往来消息(为了让模型记得上下文);
- 用于认证的密钥(Hermes / OpenAI 兼容 / LangServe 走
Authorization: Bearer …, Anthropic 走x-api-key)。
除此以外,这个 App 没有其他网络出口。作为佐证:Markdown 里的 Mermaid 图表由随包 内置的渲染引擎在本地绘制,不访问 CDN,也不联网——所以在完全没有互联网的内网里也 能画出图来。
关于传输加密:这个 App 允许连接明文 HTTP
的地址,因为自建后端常常跑在私有网络里、 没有配 TLS
证书。这意味着如果你填的是 http://
开头的地址,这段流量不是加密的。 建议要么用
https://,要么把后端放在 Tailscale / WireGuard
这类私有网络里访问。
四、你选择的后端,有它自己的隐私政策
这一点很重要:AI 秘书只是把你的消息送到你指定的地址。收到消息之后发生什么,由那台 服务器和它背后的服务商决定,不由这个 App 决定,开发者也无从知晓和控制。
- 如果你连的是 Anthropic、OpenAI 或其他商业 API,适用的是它们的隐私政策与数据 留存条款,你和它们之间的关系与本 App 无关。
- 如果你连的是自建服务(例如 Hermes 网关),那台机器上保存什么、保存多久、谁能看, 完全由你自己决定。
- 选择后端、阅读它的条款、对发送出去的内容负责,是使用者的责任。
另外提醒一句:这个 App 支持的某些后端(例如 Hermes agent 网关)可能会在服务端执行 工具、运行终端命令或操作其他设备。App 内的「工具批准」设置只决定由谁来回答批准 请求,真正的权限闸门在服务端。请只绑定你自己信任的服务器。
五、绑定信息与密钥的安全
- 绑定二维码和
aisecretary://链接里包含你的密钥。生成二维码的界面上也有同样的 提示:别把这张码截图发给别人。 - 通过
aisecretary://链接绑定时,App 不会静默生效:任何网页或消息都能打开这种 链接,所以 App 只解析、不直接写入,一定会先弹出确认页让你看清楚要绑到哪里,你同意 之后才写进钥匙串。扫码同理,也要确认。 - 密钥保存在 iOS 钥匙串里,设定为「设备首次解锁后可读」,未开启 iCloud 同步。
六、权限说明
App 只在你主动使用对应功能时申请这些权限,全部拒绝也不影响打字聊天:
- 相机:只用于扫描绑定二维码。摄像头只识别二维码这一种码,扫到一个就停;不拍照、 不录像、不保存画面。
- 照片:两个用途——从相册里选一张图片来识别其中的绑定二维码;以及给消息附加图片。 系统的照片选择器只把你点选的那几张交给 App,App 不遍历相册。
- 麦克风与语音识别:只用于语音输入。App 调用的是 Apple 的 Speech 框架,并在 设备支持的语言上要求使用本机识别;如果你的设备对当前语言不支持本机识别,iOS 可能 会按 Apple 自己的隐私政策在 Apple 的服务器上完成识别。无论哪种情况,这个 App 本身 不保存录音,也不把音频发给你的后端或任何第三方——发出去的只有识别出来的文字,且是 在你按下发送之后。
- 朗读(不需要额外授权):用系统内置的语音合成在本机朗读,不联网。
- 文件:读取你主动选择的文档,并把副本存进 App 的「收件」目录。
七、儿童隐私
本 App 不面向 13 岁以下(或你所在地区法律规定的相应年龄以下)的儿童,也不会有意 收集儿童的任何信息——事实上,本 App 不收集任何人的任何信息。使用本 App 需要你自行 配置一个 AI 后端服务,这通常需要一个成年人才能持有的服务账号或自建服务器。
八、数据保留与删除
开发者不持有你的数据,因此开发者侧不存在任何保留期限。你设备上的数据由你完全控制:
- 删除单条对话:在对话列表里左滑该条 → 删除。这会一并清掉这条对话在本机的记录、 它的本地缓存,以及这条对话里发过的图片;如果后端保存会话,也会请求后端删除。
- 清空本机文件与缓存:菜单 ▸ 偏好设置 ▸ 存储 ▸ 「清空本机文件与缓存」。这会删除 「收件」和「导出」两个目录里的所有文件、本机缓存的图片,以及服务端会话的本地缓存。 该操作不可撤销,界面上会先告诉你要删掉多少数据。 (注:这一项不包含无状态后端的本机对话记录——那部分请用上面的「删除单条对话」, 或直接卸载 App。)
- 删除某个后端的密钥:在「连接设置」里左滑该连接 → 删除。删除连接的同时会清掉它在 钥匙串里的那条密钥。
- 删除单个文件:菜单 ▸ 文件,在列表里删除;也可以直接在系统「文件」App 里删除。
- 删除全部:卸载 App 会移除它的整个沙盒容器(对话、缓存、文件、偏好设置)。如果你 希望连密钥也确定清干净,建议先在 App 内删除全部连接,再卸载。
- 服务端的数据:如果你的后端在服务端保存会话,那部分数据在你的服务器上,需要你按 该服务的方式自行删除;本 App 的清理操作管不到它。
九、政策变更
如果本政策有实质性变更,本页面会更新,并同步更新顶部的生效日期。由于 App 不收集数据, 也没有账号体系,无法向你推送通知,请以本页面的最新版本为准。
十、联系方式
对本政策有疑问,或需要行使任何数据相关权利,请联系:
jackdark425@qq.com
(需要说明的是:由于开发者不持有你的任何数据,「访问」「导出」「删除」这类请求, 在这个 App 上都只能由你在自己的设备上完成——上面第八节写的就是全部办法。) ```