Personal Assistant

unlisted

by Fredrik Folkeryd

An agentic AI interface for your Obsidian vault, powered by GitHub Copilot

Updated 11d agoMIT
View on GitHub

Obsidian PA

CI

An Obsidian plugin that provides an agentic interface to leverage AI agents within your Obsidian vault.

šŸš€ Beta Release — Full task automation now available! See Changelog for details.

Overview

Obsidian PA enables users to interact with AI capabilities directly in their note-taking workflow, bringing agentic development practices to personal knowledge management.

Developer: Fredrik Folkeryd
Background: Personal project built as an exercise in agentic development practices. Not affiliated with any organisation.

Features

Core AI Chat

  • šŸ’¬ Streaming AI responses — Real-time output with conversation persistence
  • šŸ”„ Two provider options:
    • GitHub Models (free tier) — GPT-4o, Llama, Mistral, and more
    • GitHub Copilot CLI — Premium models like Claude Opus 4.5 for Copilot Business/Enterprise
  • šŸ” Secure credentials — 1Password CLI integration or direct token entry
  • šŸ“ Folder-based privacy — Opt-in or opt-out data sharing controls

Write Operations (New in beta)

  • āœļø AI-assisted editing — Apply suggested edits with diff preview
  • šŸ’¾ Automatic backups — All changes backed up with one-click revert
  • šŸ“œ Edit history — Browse and restore previous versions

Task Automation (New in beta)

  • šŸ¤– Multi-step task plans — AI executes complex workflows:
    • Create, modify, delete, and move notes
    • Add wikilinks and tags
    • All with confirmation before execution
  • šŸ—£ļø Natural language tasks — Say "create a note about X" and it works
  • šŸ“Š Task history view — Browse past operations with rollback capability
  • ā†©ļø Full rollback support — Undo entire task plans

Context Management

  • šŸ“Ž Multi-file context — Select multiple files for AI to reference
  • šŸ“ Token budget — Visual indicator of context window usage
  • šŸ’” Smart suggestions — AI recommends relevant linked files

Prerequisites

You'll need one of the following:

Option A: GitHub Models (Free Tier)

  1. A GitHub account
  2. A Personal Access Token with Models: Read permission
  3. (Optional) 1Password CLI for secure token management

Option B: GitHub Copilot CLI (Premium Models)

  1. A GitHub Copilot Business or Enterprise licence
  2. GitHub Copilot CLI installed:
    • macOS/Linux: brew install copilot-cli
    • Windows: winget install GitHub.Copilot
    • npm: npm install -g @github/copilot
  3. Authenticated via OAuth (run copilot and follow prompts) or via PAT with "Copilot Requests" permission

Note: The older gh copilot extension has been deprecated in favour of the standalone copilot CLI.

Installation

From Community Plugins (Not yet supported)

Note: This plugin is not yet available in the Obsidian Community Plugins directory. Once submitted and approved, you'll be able to install it directly from Obsidian.

  1. Open Obsidian Settings → Community plugins
  2. Click "Browse" and search for "Personal Assistant"
  3. Click "Install" then "Enable" </spanZ

Manual Installation

Download the latest release zip and run the included installer:

# Download and extract
# x-release-please-start-version
curl -L \
  https://github.com/FredrikFolkeryd/obsidian-pa/releases/download/obsidian-pa-v1.0.2-beta.3/obsidian-pa-latest.zip \
  -o /tmp/obsidian-pa.zip
# x-release-please-end
unzip -o /tmp/obsidian-pa.zip -d /tmp/

# Run installer (auto-detects your vaults)
/tmp/obsidian-pa/install.sh

The installer will auto-detect your Obsidian vaults and let you choose where to install.

Alternative: Manual copy

If you prefer to install manually:

  1. Download obsidian-pa-X.X.X.zip from the latest release
  2. Extract the obsidian-pa/ folder to <your-vault>/.obsidian/plugins/
  3. Enable the plugin in Obsidian Settings → Community plugins

Using BRAT (Beta Testing)

If you use the BRAT plugin for beta testing:

  1. Open BRAT settings
  2. Click "Add Beta plugin"
  3. Enter: FredrikFolkeryd/obsidian-pa

Known Limitations

This is a beta release — core features are stable but some areas are still in development:

AreaStatusNotes
Windows support🟔 PartialmacOS/Linux focus; Windows paths less tested
Community PluginsšŸ”“ PendingNot yet in official directory
MobilešŸ”“ UntestedDesktop-first development
Link suggestionsšŸ”µ PlannedAI-recommended connections
Orphan detectionšŸ”µ PlannedFind unlinked notes

What's Working Well

As of beta.1:

  • āœ… Full task automation — AI can create, modify, delete, and organise notes
  • āœ… Natural language tasks — "Create a note about X" just works
  • āœ… Task history with rollback — Undo entire operations
  • āœ… Multi-file context — AI references multiple notes at once
  • āœ… Streaming responses — Real-time output with conversation persistence
  • āœ… Edit confirmations — Diff preview before any changes
  • āœ… Automatic backups — Every edit is backed up

Safety Features

All write operations include:

  • āœ… Confirmation dialogs — Review changes before applying
  • āœ… Diff previews — See exactly what will change
  • āœ… Automatic backups — Stored in .pa-backups/ folder
  • āœ… One-click revert — Restore any previous version
  • āœ… Audit logging — All operations logged
  • āœ… Task approval — Review multi-step plans before execution

Development

Prerequisites

  • Node.js (v20 or later recommended)
  • npm

Setup

# Install dependencies
npm install

# Run in development mode with watch
npm run dev

# Run linting
npm run lint

# Run tests
npm run test

# Build for production
npm run build

Tech Stack

  • Language: TypeScript
  • Platform: Obsidian Plugin API
  • Build: esbuild
  • Testing: Jest/Vitest
  • Linting: ESLint with TypeScript rules

Project Structure

obsidian-pa/
ā”œā”€ā”€ .github/
│   ā”œā”€ā”€ agents/           # AI agent definitions
│   ā”œā”€ā”€ workflows/        # GitHub Actions CI/CD
│   └── copilot-instructions.md
ā”œā”€ā”€ src/
│   ā”œā”€ā”€ main.ts          # Plugin entry point
│   ā”œā”€ā”€ settings.ts      # Plugin settings
│   └── agents/          # Agent implementations
ā”œā”€ā”€ manifest.json        # Obsidian plugin manifest
ā”œā”€ā”€ package.json         # Node.js dependencies
ā”œā”€ā”€ tsconfig.json        # TypeScript configuration
└── esbuild.config.mjs   # Build configuration

Contributing

Please see CONTRIBUTING.md for guidelines on how to contribute to this project.

All commits must follow Conventional Commits specification to enable semantic versioning.

Changelog

See CHANGELOG.md for a detailed history of changes.

Development Values

This project follows these engineering principles:

  • Simplicity: Write clear, straightforward code; avoid over-engineering
  • Cost-consciousness: Optimise for performance and bundle size
  • Renew and improve: Continuously refactor and improve code quality
  • Give and take responsibility: Each agent owns its domain; trust but verify

Licence

MIT

For plugin developers

Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.