Agentero
Connect your own Agent, keep research context in a local Vault. Seamlessly migrate from Zotero, read, understand, link, and reuse your research context.
AI translation
A private notebook that floats. Three themes: Linen, Specimen and Reverie.
ProductivityTypeScript · CSSGitHub @curdorraOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗A private, multi-user notebook. People sign up with a username and password, keep several notebooks of rich-text pages, and choose one of three themes: Linen, Specimen or Reverie. Pages autosave as you type.
Next.js 16 · Postgres (Neon) via Drizzle · Tiptap editor · Resend for reset emails.
npm install
npm run preview # fast production build — use this to look around
npm run dev # live-reloading, for editing code (slower on first visit to each page)
Open http://localhost:3000. No setup is needed: without a DATABASE_URL, both commands
start an embedded Postgres (PGlite) that stores its data in ./.pglite. To start
fresh, delete that folder.
Password-reset emails are printed to the terminal while RESEND_API_KEY is unset.
DATABASE_URL for you. You can also create a database at neon.tech and paste its
connection string in yourself.scripts/migrate.mjs first, which creates or updates the tables.| Variable | What it does |
|---|---|
RESEND_API_KEY | Sends password-reset emails. Get a key at resend.com. |
EMAIL_FROM | Sender address, e.g. Levitating Notebook <[email protected]>. The domain must be verified in Resend. |
APP_URL | Base URL used in reset links. It defaults to your Vercel production URL. |
LEGAL_NAME | Who runs the site, as named in the privacy policy and terms. |
CONTACT_EMAIL | Where people send privacy requests and questions. Shown on /privacy and /terms. |
LEGAL_COUNTRY | Where you're based; sets the governing law in the terms. |
src/lib/crypto.ts.src/lib/ratelimit.ts). Quotas per account in src/lib/limits.ts.src/proxy.ts) plus nosniff, frame
denial, referrer and permissions policies and HSTS (next.config.ts).Edit src/db/schema.ts, then run npm run db:generate to write a migration into
./drizzle/. It's applied automatically on the next npm run dev or deploy.
| Path | What |
|---|---|
src/app/themes.css | All three themes: colour tokens, backdrops, book covers, paper |
src/app/globals.css | Layout and components (theme-agnostic) |
src/components/Ambience.tsx | The animated backdrop layers |
src/components/Editor.tsx | Tiptap editor and toolbar |
src/lib/autosave.ts | Debounced save, retry, and a final save when the tab closes |
src/lib/session.ts | Sessions: random token in an httpOnly cookie, SHA-256 hash in the database |
src/app/actions/ | Server actions for sign-up/sign-in, notebooks and account settings |
src/lib/crypto.ts | End-to-end encryption: key derivation, wrapping, recovery key, ciphertexts |
src/components/Vault.tsx | Holds the key in the browser; unlock, upgrade and recovery-key dialogs |