o1xhack69 downloadsAgentic AI chat assistant that reads, edits, and creates notes through natural conversation. Supports Anthropic, OpenAI, and ChatGPT account sign-in.
An agentic AI assistant that lives in your Obsidian vault — same experience on phone, tablet, and desktop.
data.json, never synced across devices.Ask once, the agent figures out which tools to call:
You: Find every note in /Books that's missing a `rating` property and add `rating: ?`.
Assistant
→ search_vault("/Books") → 12 files
→ get_properties("Books/Sapiens.md") → has rating
→ get_properties("Books/Hail Mary.md") → no rating
→ set_properties("Books/Hail Mary.md", { rating: "?" })
→ ... (5 more)
Done — added `rating: ?` to 6 notes:
- Books/Hail Mary.md
- Books/Klara and the Sun.md
- ...
The agent reads before it edits, prefers small surgical changes over rewrites, and doesn't re-ask once you confirm.
Highlight text in any note, right-click, choose Send selection to Chat. The selection becomes a pill above the input and the assistant edits only inside the selected range — leaving the rest of the document byte-identical.
[ pill: "...the introduction was a bit dry, and..." ✕ ]
You: tighten this — keep my voice
The agent uses find-and-replace scoped to the selection text. Everything outside the highlight stays untouched.
| Group | Tools | What they do |
|---|---|---|
| Read | read_document, read_file, search_vault, list_files, get_backlinks, get_properties, get_current_datetime |
Open notes/files, search by name and content, browse the tree, find backlinks, read frontmatter, fetch the current time in your locale. |
| Write | edit_document, create_file, set_properties |
Surgical find-and-replace / insert / full replace; create new notes (parent folders auto-created); safe YAML frontmatter merge or remove. |
| Manage | rename_file, delete_file, open_document, ask_user |
Rename or move (links auto-update); move to trash (respects your trash setting); open a file in the editor; pause and ask you when something is ambiguous. |
| Provider | Auth | Default model | Notes |
|---|---|---|---|
| Anthropic | API key | Claude Sonnet 4.6 | Adaptive thinking, web search, prompt caching. |
| OpenAI | API key | Codex 5.3 | Responses API, reasoning, web search. |
| ChatGPT account | Sign in with ChatGPT | GPT-5.5 | Uses your ChatGPT plan instead of an OpenAI API key. |
About ChatGPT account login. This provider signs you in with your ChatGPT account and routes requests through the ChatGPT/Codex backend (not
api.openai.com). It requires an active ChatGPT plan with Codex access. The available models mirror the Codex CLI catalog.
o1xhack/obsidian-chattingBRAT installs beta plugins directly from GitHub and keeps them up to date.
o1xhack/obsidian-chattingmain.js, manifest.json, styles.css from the latest release<vault>/.obsidian/plugins/chatting-with-ai/git clone https://github.com/o1xhack/obsidian-chatting.git
cd obsidian-chatting
npm install
npm run build
Symlink into a test vault:
ln -s "$(pwd)" /path/to/vault/.obsidian/plugins/chatting-with-ai
| Principle | What it means |
|---|---|
| Mobile is not an afterthought | Every change is validated on iOS and Android. No streaming, no Node-only modules, no localhost callbacks. |
| Three sane providers | Anthropic + OpenAI for stability, ChatGPT account for users who'd rather not manage an API key. |
| Secrets in the keychain | API keys and OAuth credentials go through Obsidian SecretStorage. They never land in data.json, so they never sync to other devices. |
| No vault indexing | Linear search, capped. Predictable, no background work, no memory pressure on phones. |
| Conversation persists | Chat history survives Obsidian restarts. Stored locally in chat-state.json, never synced. |
| Right sidebar on mobile | Slides in from the edge — your document stays visible underneath. |
Have a request? Open an issue.
Only what the agent needs for the current turn. When you ask a question, the agent decides which tools to call — read_document, search_vault, etc. — and the contents fetched by those calls (plus the active note context) are sent to your chosen provider. Nothing is uploaded in the background. There is no vault index.
Yes — that's the design constraint everything else is built around. Requests go through Obsidian's requestUrl() (mobile WebViews enforce CORS), there's no streaming, no Node-only modules, no localhost callback for OAuth. iOS and Android run the same code path as desktop.
It uses your existing ChatGPT plan (Plus, Pro, Team, Enterprise) — there's no separate billing. You need an active plan with Codex access. The plugin doesn't talk to api.openai.com; it talks to the same backend the Codex CLI uses.
Probably not — keeping the provider list small is a deliberate choice. Two API providers cover the major ecosystems, and ChatGPT account login covers the "I just have a ChatGPT plan" case. Adding more would mean more permutations to validate on mobile.
Locally in <vault>/.obsidian/plugins/chatting-with-ai/chat-state.json. It is not synced by Obsidian Sync (plugin data files are excluded by default). API keys live in the OS keychain via SecretStorage and are also not synced.
Issues and PRs welcome. Before opening a PR:
npx tsc --noEmit and npm run svelte-checkOriginally derived from omarshahine/obsidian-chat (MIT). The original copyright is preserved in LICENSE. Chatting with AI is now an independent project with its own roadmap — major rewrites include the agent loop, mobile-parity work, the ChatGPT account provider, and the selection-scope feature.
MIT.
Author: Yuxiao (o1xhack) · app.o1xhack.com