No description
Find a file
mpstaton 7b1364098e attempt(api-images): attempt to process API related image responses
On branch development
 Your branch is up to date with 'origin/development'.
 Changes to be committed:
	modified:   main.ts
2025-07-19 22:40:18 +03:00
src feat(move-citations): rearrange format by moving citations behind commas and periods. 2025-07-08 20:12:25 +03:00
.editorconfig start(project): initial setup from example Obsidian plugin with our developer preferences 2025-06-07 15:37:58 +03:00
.eslintignore start(project): initial setup from example Obsidian plugin with our developer preferences 2025-06-07 15:37:58 +03:00
.eslintrc upgrade(packages): all packages are now up to date 2025-06-07 19:20:42 +03:00
.gitattributes start(project): initial setup from example Obsidian plugin with our developer preferences 2025-06-07 15:37:58 +03:00
.gitignore clean(starter): clean starter code 2025-07-06 17:23:37 +03:00
.npmrc switch(pnpm): add pnpm get rid of npm 2025-06-07 18:25:25 +03:00
esbuild.config.mjs feat(modal): milestone of modal feature displaying citations working 2025-07-06 18:41:26 +03:00
main.ts attempt(api-images): attempt to process API related image responses 2025-07-19 22:40:18 +03:00
manifest.json init(project): initial commit for Perplexed Obsidian Plugin with basic readme, manifest, package.json 2025-07-10 00:00:49 +03:00
package-lock.json improve(settings): improve settings UI 2025-07-19 21:08:45 +03:00
package.json improve(settings): improve settings UI 2025-07-19 21:08:45 +03:00
pnpm-lock.yaml update(packages): updated packages and dependencies to latest 2025-07-09 23:34:17 +03:00
README.md milestone(settings): settings panel is better than good enough 2025-07-19 21:13:34 +03:00
styles.css improve(settings): improve settings UI 2025-07-19 21:08:45 +03:00
tsconfig.json upgrade(packages): all packages are now up to date 2025-06-07 19:20:42 +03:00
version-bump.mjs start(project): initial setup from example Obsidian plugin with our developer preferences 2025-06-07 15:37:58 +03:00
versions.json save(state): save state of starter code for any obsidian plugin 2025-07-09 23:18:48 +03:00

Perplexed: AI Content Generation for Perplexity and Perplexica for Obsidian

Generating content with AI is a skill unto itself, a new literacy even. To stay rigorous, we should use LLMs that use quality sources, and cite sources as we would expect any research oriented authors and academics to do.

Perplexed is a plugin for Obsidian that allows you to generate content with Perplexity and Perplexica.

Perplexity is a commercial AI model vendor that charges for its API services and has a fancy AI Workspace.

Perplexica is an open source alternative to Perplexity. It's free to use but requires that you host it yourself (and involves some fun setup steps that many would rather avoid).

As of now (July 2025), these are the only widely used AI Model APIs that seem to cite sources.

Settings

Perplexed Plugin Settings ├── Perplexity (Remote Service) [PURPLE HEADER] │ ├── Endpoint │ ├── API Key │ └── Request Body Template [PERPLEXITY JSON] └── Perplexica (Self-Hosted) [PURPLE HEADER] ├── Endpoint ├── Fallback Container Path ├── Default Model └── Request Body Template [PERPLEXICA JSON]

Getting Started

pnpm install
pnpm add -D esbuild @types/node builtin-modules
pnpm build
pnpm dev

Packages, Dependencies, Libraries:

"devDependencies": {
   "@types/node": "^24.0.12",
   "@typescript-eslint/eslint-plugin": "8.36.0",
   "@typescript-eslint/parser": "8.36.0",
   "builtin-modules": "5.0.0",
   "esbuild": "0.25.6",
   "eslint": "^9.30.1",
   "obsidian": "latest",
   "tslib": "2.8.1",
   "typescript": "5.8.3"
},
"dependencies": {
   "@modelcontextprotocol/sdk": "^1.15.0",
   "fastify": "^5.4.0",
   "zod": "^4.0.0"
}

If you're like us, you have a directory housing all your code projects. To use your plugin as you develop it, just create a symbolic link. Here is my example, but you will need to use your own path structure:

ln -s /Users/mpstaton/code/lossless-monorepo/obsidian-plugin-starter /Users/mpstaton/content-md/lossless/.obsidian/plugins/

On The Lossless Group

The Lossless Group is a loose collection of individuals and organizations that are interested in creating winning formulae for using AI and Collaborative Tooling.

We consult at times, invest in startups, run Venture Capital Funds, host Hackathons, build products, write or create content, and contribute to or sponsor open source projects.

First and foremost, we are friends that stay curious and engaged. We are committed to playing on the frontiers of technology, and we eat too many tacos.