Lattice
A workspace for your research.
DriveCosm pools every Google Drive account you own into one drive with one search bar. Free to self-host; DriveCosm Cloud with AI search built on Claude is coming soon.
ProductivityTypeScript · CSSGitHub @ashmitmittalOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Loading the full README. The saved excerpt is shown below.
All your Google Drive space. One beautiful place.
Everyone hits the 15 GB wall eventually. But most of us also have more than one Google account —
personal, work, that old one from college. DriveCosm connects them all into a single dashboard so
you can see your combined storage, browse every file in one list, and upload new files to
whichever account has the most free space — automatically.Read the full README ↗All your Google Drive space. One beautiful place.
Everyone hits the 15 GB wall eventually. But most of us also have more than one Google account — personal, work, that old one from college. DriveCosm connects them all into a single dashboard so you can see your combined storage, browse every file in one list, and upload new files to whichever account has the most free space — automatically.
DriveCosm is self-hosted by design. There is no server, no account, no telemetry — your files talk only to Google, straight from your machine.
You need Node.js 20.19 or newer.
git clone https://github.com/ashmitmittal/drivecosm.git
cd drivecosm
npm install
npm run dev
That single command starts both servers — the API on port 4000 and the web app on port 3000. Open http://localhost:3000 — the built-in setup wizard takes it from there.
Because DriveCosm is open source and self-hosted, it doesn't ship with Google API keys — you create your own free ones. The in-app wizard at http://localhost:3000/setup walks you through it step by step, but here is the same guide:
Create a Google Cloud project (free, no credit card) at
console.cloud.google.com/projectcreate.
Name it anything, e.g. DriveCosm.
Enable the Google Drive API for that project: console.cloud.google.com/apis/library/drive.googleapis.com → click Enable.
Configure the consent screen at console.cloud.google.com/auth/overview: click Get started, pick any app name, choose External as the audience, and accept the defaults. Then under Audience → Test users, add every Google email you plan to connect.
Create OAuth credentials at console.cloud.google.com/apis/credentials: Create credentials → OAuth client ID → Web application, and add this authorized redirect URI exactly:
http://localhost:3000/api/auth/callback
Paste the Client ID and Client Secret into the wizard at localhost:3000/setup. Done — now click Connect an account as many times as you have accounts. 🎉
Expected. Your OAuth app is in testing mode, which is exactly right for personal use — only the test users you added can sign in. Click Continue past the warning. It's your own app, accessing your own accounts.
The project is a TypeScript monorepo with a cleanly separated backend and frontend:
drivecosm/
├── backend/ # Node.js + Express API (port 4000) — OAuth, Drive calls, token storage
└── frontend/ # React + Vite web app (port 3000) — proxies /api/* to the backend
backend/data/drivecosm.json).POST /api/upload, which picks the connected account with the most free
space, stages the file in a temp directory, and streams it to that Drive.npm run dev is the supported way to run DriveCosm for now; a packaged
single-command production mode is on the roadmap.Issues and PRs are very welcome. The stack is intentionally small: an Express + TypeScript
backend, a React (Vite) + TypeScript frontend, hand-written CSS (no framework), and googleapis.
npm install && npm run dev at the repo root is the whole development setup; npm run typecheck
checks both workspaces.