Free
Perfect for getting started
- Unlimited notes and documents
- Monthly AI usage included
- Explore with Luna
- Personal workspace
- Community support
- Export your data anytime
Express your intent in mind maps and notes. Let agents follow your lead.
A place for everything you’re thinking with—ideas, notes, images, questions—not just instructions for AI.
signIn.ts.signIn.test.ts (8/8). New and returning accounts covered.
+
Swipe the map to see the next level →
The reason and the release boundary live with the work. The agent can prepare the next step without taking the decision away.
Swipe the map to see the next level →
Follow the release boundary and leave the cutover decision to the owner.
I’ll inspect the invoice comparison and replay tests, then draft the rollback steps. I won’t run the cutover.
Keep your direction in a shared mind map. Let agents use the files, tools and browsers you connect.
Notes and chats stay in sync across tabs, browsers and devices.
The same workspace can hold a decision, change source code, inspect the diff, and check the browser. Here’s a piece of our own product work.
150 let finishRequested = false136 let finishRequested = false137 let released = false139 const releasePlayback = async () => {140 if (released) {145 action.disabled = true150 bridge.releasePlayback()153 void waitForAction(action).then(releasePlayback)198 await waitForAction(action)199 hint.setAttribute('data-home-loading-state', 'done')202 bridge.releasePlayback()The click handler moves ahead of the ready wait. The release path now guards against firing twice.
156 await waitForLoadingAction(page)157 await page.click('[data-home-loading-action]')158 await waitForLoadingAction(page)159 await page.click('[data-home-loading-action]')160 await page.waitForFunction(() => {161 const hero = document.querySelector('[data-interactive-hero]')162 const invitation = document.querySelector('.interactive-hero-copy-invitation')163 return document.body.dataset.homeLoadingState === 'done'164 && hero?.classList.contains('is-exhibition-released')166 && getComputedStyle(invitation).visibility === 'hidden'The browser check verifies that playback starts and the invitation disappears after the click.
Give your work a place to take shape. Keep your plan in sight while an agent helps you move it forward.