ProjectView

by ngchenghow
5
4
3
2
1
Score: 35/100

Description

This plugin has not been manually reviewed by Obsidian staff. Organize notes into projects. Each project tracks its folders, notes and last-open tabs - click a project to instantly restore its workspace.

Reviews

No reviews yet.

Stats

stars
15
downloads
0
forks
1
days
NaN
days
NaN
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
0
commits

Latest Version

Invalid date

Changelog

README file from

Github

ProjectView

An Obsidian plugin that organizes your notes into projects. Each project keeps its own set of folders and notes, remembers the tabs you had open, and can sync with a Google Drive folder.

A project lives as a pane in the left sidebar; clicking it instantly restores that project's workspace (its open tabs, scroll position, and active tab) without losing state.

Desktop‑focused. The core project features work anywhere, but the Google Drive integration is desktop‑only.


Features

Projects

  • A Projects list in the left sidebar; each project is a full‑width box showing its name and description.
  • Create projects with + New — set a name, description, member folders, and specific notes.
  • The project list is auto‑docked above the native File Explorer, so the explorer sits at the bottom of the left sidebar.

Live panes (instant project switching)

  • Each project keeps its own live tab group. Switching projects hides the old pane and shows the target's instead of closing/reopening notes — so scroll position, cursor, undo history and the active tab are all preserved.
  • When you close the last tab in a pane, a fresh empty tab is shown so the project always has a visible pane.
  • On restart, only the active project's pane is rebuilt; others are recreated lazily on first click.

Multiple panes per project

  • Add extra named panes to a project (project header New pane). Each pane has its own remembered tabs.
  • A Panes section lists the Main pane plus your named panes; click to switch. Named panes can be renamed or deleted.

Project contents pane (right sidebar)

  • Shows the active project's pinned notes, folders, and loose notes.
  • Pinned section at the top — pin/unpin notes from a note's menu; toggle reorder mode to drag‑reorder pins.
  • Folder notes are sorted by name; a subfolder's notes appear under a labeled separator.
  • Auto‑refreshes when notes are created, deleted, or renamed in the vault.
  • Clicking a note opens or focuses it (no duplicate tabs).

Context menus

  • Note menu: Pin / Unpin, Rename, Upload to Google Drive (linked projects).
  • Folder menu: Rename, Remove from project (keeps the folder in your vault).
  • Pane menu: Open folder…, Open note…, Browse… (a folder/file tree of the project), Rename / Delete (named panes).

Google Drive sync (desktop only)

  • Create a project from a Drive share link: in + New, paste a folder link, pick a new or existing folder, and the folder's files/subfolders are downloaded and linked to the project.
  • Download from / Upload to Google Drive from the project menu (left pane and right‑pane header).
  • Upload a single file from a note's menu.
  • Google‑native files are exported on download: Docs → .md, Sheets → .csv, Slides → .pdf.

Sync is one‑way and additive: download writes/updates files locally (never deletes local files removed on Drive); upload writes/updates files on Drive (never deletes Drive files removed locally).


Installation

  1. Open Settings → Community plugins → Browse.
  2. Search for ProjectView.
  3. Click Install, then Enable.

Manual

  1. Download manifest.json, main.js, and styles.css from the latest release.
  2. Place them in <your-vault>/.obsidian/plugins/obsidian-project-view/.
  3. In Obsidian, enable ProjectView under Settings → Community plugins.

Data storage

Projects are stored in a note inside your vault (default ProjectView.md, configurable in settings) as a JSON code block — so the data is per‑vault and travels/syncs with your vault. Plugin settings (and Drive credentials) live in the plugin's data.json. (Data from an older RecentView.md note is migrated automatically.)


Google Drive setup

  1. In the Google Cloud Console: create a project and enable the Google Drive API.
  2. Create an OAuth client ID of type Desktop app.
  3. Add yourself as a test user on the OAuth consent screen (or publish it).
  4. In Settings → ProjectView → Google Drive, paste the Client ID and Client Secret, then click Connect and authorize in your browser.

You need edit access to a shared folder for uploads to work.


Building from source

npm install
npm run build     # type-check + bundle to main.js
npm run dev       # watch mode

Source: main.ts (plugin) and gdrive.ts (Google Drive client), bundled with esbuild.


License

MIT