Inspiration
The world doesn't pause for your life. We built Second Self because your most important moments shouldn't cost you your responsibilities, and your responsibilities shouldn't cost you your most important moments. Instead, what if someone had your back. Someone who knew exactly how you think, how you write, what you're working on, and handled the noise to literally 2x your productivity? That's your second self.
What it does
Second Self is a digital twin that runs as a parallel user session on your very own Mac. It learns how you write, what you do, and who you are. Then acts autonomously on your behalf using computer use, browser use, MCP connectors (Google, Notion, Slack), and a personalized voice profile built from your emails, tweets, and files.
Uniquely unlike other AI agents, we run fully natively on your own mac, but without any of the security concerns, and with all of the capabilities and convenience.
How we built it
- We used macOS Fast User Switching to run a second session simultaneously, with VNC/screen sharing so users can watch their twin in real time. This allows your twin to work on your very own computer, while still operating under a hardened security boundary.
- The agent controls the second session via PyAutoGUI/AppleScript powered by Anthropic's computer use API, and browser-use cli for extremely fast browser automation.
- We use cookie cloning via browser-use cli for easy authentication for computer use.
- HEX, PRIME intelligence for reinforcement learning.
- We're particularly proud of our UI/UX for which we used Swift, swift ui, apple kit, Eleven labs, A2UI, for the best ui/ux of my life.
- We used Tavily, beautiful soup for email scraping via Google API, during onboarding for web search to bootstrap the twin's knowledge of the user, plus cookie cloning (browser-use cli), file permission grants, and style fingerprinting from the user's writing.
- Next.js + tailwind + custom hand-animated animations and avatars for onboarding website
- Auth0 for auth
- For development, we used the Zed code editor.
- Built a Custom MPJPEG stream + vnc for cross-user screen sharing
- Claude agents sdk for the core agent loop
- App is fully notarized and published for download
- FastAPI, Firebase, Pydantic, Pillow, Quartz, Pytest, etc.
Challenges we ran into
- Setting up Vine Server + Tiger VNC + custom MPJPEG streaming just to see and control the screen of the other user profile proved extremely complicated and a huge hassle.
- Consistently cloning cookies and granting scoped file permissions to the twin, and building a convincing voice/style fingerprint from limited writing samples was also difficult
- On the engineering side, coordinating across branches with a large team was a constant challenge, managing merge conflicts, keeping features in sync, and making sure nobody's work blocked anyone else's under tight hackathon time pressure.
Accomplishments that we're proud of
- Getting a live, working digital twin running in a parallel macOS session with real computer use, browser cookie cloning, and most importantly running on YOUR MAC.
- Building an onboarding flow that can rapidly profile a user from public data and local files to make the twin feel genuinely personal.
- Episodic, behavioral, comprehensive memory layer constructed in seconds
- We're also especially proud of the UI. We put a lot of effort hand animating the avatar animations, notch interaction to the pill input expanding under it, every transition was carefully crafted to feel smooth and intentional.
What we learned
- Communication gaps lead to painful merge conflicts. (doing two diff auth routes by accident led to huge issues at the last minute when we merged)
- Get env variables organized from day one. Frontend ↔ backend integration testing can't be an afterthought. Agree on API shapes and test the connection early, not after both sides are "done."
- Spend more time writing a plan / design, especially in the age of AI
What's next for Second Self
- More complete RL training loop (via Prime Intellect or Modal) so the twin improves from feedback over time.
- MongoDB Atlas for better persistent memory. Expanding MCP connectors.
- Better reliability
Built With
- agentation
- appkit
- auth0
- beautifulsoup4
- browser-use
- cdp-use
- claude
- claude-agent-sdk
- codesign
- cryptography
- dynamicnotchkit
- elevenlabs
- eslint
- fastapi
- filelock
- firebase
- firebase-admin
- firebase-auth
- firebase-firestore
- github-actions
- gmail-api
- google-auth
- google-auth-oauthlib
- google-calendar-api
- google-oauth-2.0
- hex
- httpx
- launchagents
- mongodb
- motion
- next.js
- oauth
- pillow
- pkgbuild
- postcss
- productbuild
- productsign
- pyautogui
- pydantic
- pyjwt
- pyobjc-framework-quartz
- pytest
- pytest-asyncio
- python
- python-build-standalone
- python-dotenv
- react
- requests
- swift
- swift-package-manager
- swiftui
- tailwind
- tailwind-css
- tavily-api
- typescript
- uvicorn
- vercel
- vnc
- xcrun-notarytool
- zed

Log in or sign up for Devpost to join the conversation.