Codex conversations across your Obsidian sidebar, workspace, and pop-out windows.
Use Codex from compact and document-scale conversation surfaces in your vault.
Codeian is a desktop-only Obsidian plugin that embeds a Codex prompt surface inside your vault. It is built for users who want to ask Codex for help while staying in Obsidian, with the vault as the working context and the local codex CLI as the execution engine.
- Open Codex in the compact right sidebar, a main workspace tab, or a desktop pop-out
- Keep one live run synchronized across every open surface
- Switch workspace conversations between full chat and focused reading modes
- Run prompts from inside Obsidian
- Stream Codex output back into the conversation
- Render final answers as Markdown
- Choose model and reasoning effort from the sidebar
- Use
Enterto run andShift+Enterfor a new line - Type
/for Codex CLI command suggestions - Type
$for local Codex skill suggestions - Type
@for active-vault Markdown file suggestions - Open the prompt template library to insert and manage reusable prompts
- Add the current note as prompt context, with confirmation before sending
- Allow Codex to write inside the vault/workspace by default, with a sidebar access selector
Open Codeian from the ribbon icon or Codeian: Open sidebar. Use Codeian: Open conversation in main area for a full workspace tab, Codeian: Open conversation in pop-out for a native desktop window, and Codeian: Toggle conversation reading mode to switch the active conversation between chat and focused reading. When the current Obsidian version cannot open a pop-out leaf, Codeian opens the same session in the main area and shows a notice.
Type a prompt in the composer at the bottom of the sidebar and press Enter to run it. Use Shift + Enter when you want to add a line break instead of running the prompt.
Use the library button in the composer to open prompt templates. Selecting a template fills the composer and keeps focus there; it does not run Codex until you press Enter or the run button. The same window lets you add, edit, and delete templates.
The sidebar includes quick selectors for model, reasoning effort, and file access. These selectors are passed into the Codex CLI run so a prompt can be switched between faster, deeper, read-only, writable, and YOLO modes without opening settings.
When typing a prompt:
| Input | Behavior |
|---|---|
/ |
Shows dynamically discovered Codex CLI commands from the local codex --help output. |
$ |
Shows dynamically discovered local skills from the machine's Codex skill registry. |
@ |
Shows Markdown files from the active vault and inserts @<vault-relative-path>. |
Enter |
Runs the current prompt. |
Shift + Enter |
Inserts a new line. |
The sidebar keeps session management, messages, and the composer usable in a 320 by 600 pixel pane. Session metadata stays behind the session menu so it does not consume transcript space. Main and pop-out surfaces expose the complete chat workflow; reading mode hides editing and run configuration while retaining the transcript, response actions, and a return-to-chat control.
Every surface subscribes to the same plugin-owned session controller. A session can have only one Codex process, so opening, switching, or closing a view never duplicates or cancels an active run. Plugin unload still cancels active processes.
Codeian runs the local Codex CLI through codex exec. Obsidian desktop apps often launch without the same PATH as your terminal, so Codeian also searches common local binary directories and provides a settings-level CLI test.
Codeian manages Codex --sandbox separately from the raw argument text:
| Sidebar label | Codex sandbox | Behavior |
|---|---|---|
| Write | workspace-write |
Default. Codex can edit files in the active vault or configured working directory. |
| Read | read-only |
Codex can inspect files but should not modify them. |
| YOLO | danger-full-access |
Codex gets unrestricted filesystem access. Codeian asks for confirmation before running. |
File write/edit events from Codex are shown as collapsible file-change blocks in the assistant stream, keeping the final Markdown answer readable while still making document modifications visible.
Codex output is streamed into every surface showing that session. Noisy intermediate logs are kept out of the final answer surface where possible, and the final assistant content is rendered through the same Markdown and vault-link path everywhere. Wide code blocks and tables scroll locally instead of widening the conversation.
Suggestions are discovered at runtime instead of being hard-coded:
- Slash commands come from the configured local Codex CLI when it is safe to identify it as
codex. - Skill suggestions come from local
SKILL.mdmetadata in the Codex skill registry. - File suggestions come from Markdown files in the active vault, excluding hidden,
.obsidian,node_modules, and.gitpaths. - If discovery fails, Codeian falls back to a small built-in suggestion set.
Prompt templates are separate from token-triggered suggestions. They are stored locally in the plugin settings and managed from the library button in the composer.
The Add current note context command inserts the active note into the prompt composer. Codeian asks for confirmation before sending prompt content that was created from a note.
Codeian has a listing in the new Obsidian Community Directory:
obsidian://show-plugin?id=codeian
You can also view it on the web:
https://community.obsidian.md/plugins/codeian
- Download the latest release assets from the GitHub releases page.
- Create this folder inside a dedicated test vault:
<vault>/.obsidian/plugins/codeian/
- Copy these files into that folder:
main.js
manifest.json
styles.css
- Open Obsidian settings.
- Go to
Community plugins. - Enable community plugins if needed.
- Enable
Codeian.
Do not test development builds in a primary production vault. Use an isolated test vault until you trust the build.
npm install
npm run buildThen copy main.js, manifest.json, and styles.css into <vault>/.obsidian/plugins/codeian/.
For watch mode:
npm run dev- Obsidian desktop
- Codex CLI available as
codex, or configured with an absolute path in Codeian settings - Node.js 20.19.0 or newer for development
Codeian is desktop only because mobile Obsidian cannot launch a local CLI process.
| Setting | Default | Notes |
|---|---|---|
| CLI command | codex |
Use an absolute path if Obsidian cannot find your terminal-installed CLI. |
| Codex arguments | --ask-for-approval never exec --skip-git-repo-check |
Runs Codex non-interactively. Codeian manages JSON output, working directory, model, effort, and sandbox separately. |
| File access | Write |
Uses --sandbox workspace-write so Codex can modify files in the vault/workspace. |
| Working directory | Empty | When empty, Codeian uses the current vault path when available. |
| Default prompt | Empty | Optional saved prompt text for new sessions. |
| Prompt templates | Three starter templates | Managed from the library button in the composer. |
| Model | gpt-5.4-mini |
Can also be changed from the sidebar. |
| Effort | medium |
Can also be changed from the sidebar. |
Codeian warns before running when the configured command is not codex, when --ask-for-approval never is missing or placed after exec, or when YOLO file access is selected.
- Codeian does not run automatically on startup.
- Codeian does not send note content when the sidebar opens.
- Current-note context is inserted into the composer first; you still choose whether to run it.
- Note-context prompts require confirmation before sending.
- No telemetry is collected by this plugin.
- Settings are stored through Obsidian's plugin data APIs.
- The default execution posture uses Codex non-interactively with workspace-write sandbox access, so Codex can modify files in the vault or configured working directory.
Codex itself may send prompts, attached/context files, and tool outputs to the provider configured by your local Codex environment. Review your Codex configuration before using Codeian with sensitive vaults.
npm test
npm run lint
npm run build
npm run verify:release
npm run smoke:test-vaultThe smoke test copies release files into a temporary isolated vault plugin directory and verifies the copied manifest.
Each GitHub release should include exactly the files Obsidian needs to load the plugin:
main.jsmanifest.jsonstyles.css
npm run verify:release checks that these files exist and are non-empty.
- Codeian currently uses
codex exec, so each run is non-interactive. - Conversation history and surface state remain local to Obsidian; Codeian does not provide remote sync or accounts.
- MCP server management, app-server integration, and inline note editing are not part of this version.
- Manual GUI acceptance should still be performed in an isolated Obsidian test vault.
Use docs/OBSIDIAN_SMOKE_CHECKLIST.md for the manual Obsidian smoke pass.
Project requirements and design notes are kept in PROJECT_BRIEF.md.