MCPcopy Index your code
hub / github.com/Surfer-Org/Protocol

github.com/Surfer-Org/Protocol @v1.0.4

Chat with this repo
repository ↗ · DeepWiki ↗ · release v1.0.4 ↗ · + Follow
963 symbols 2,663 edges 183 files 15 documented · 2% updated 18mo agov1.0.4 · 2024-12-22★ 1,4767 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Surfer Protocol: An open-source framework for exporting and building applications off of your personal data

⚠️ Looking for the Surfer Desktop App or the Surfer Python SDK?

Desktop App: Surfer Desktop App\ SDK: Surfer Python SDK

Contributors Forks Stargazers Issues MIT License

Demo (click to view)

YouTube

What is Surfer Protocol?

Surfer Protocol is an open-source framework for exporting and building applications off of your personal data.

Your personal data is siloed across many platforms and apps. Big tech companies have no incentive to give you easy access to your own data. Whether you want to make an AI clone that texts like you, reclaim your data from big tech, or leave a digital legacy, Surfer Protocol is the way to do it.

Currently, Surfer Protocol consists of a Python SDK and a Desktop App. The Desktop App is used for exporting your data from your favorite apps and services. The Python SDK is used for building applications off of your personal data.

Features

  • Desktop App for exporting data from your favorite apps and services
  • Python SDK for building applications off of your personal data
  • Cookbook for examples of how to use the Surfer Protocol Python SDK to build applications

Currently Supported Platforms

  • iMessages
  • Twitter Bookmarks
  • Notion
  • ChatGPT History
  • Gmail
  • LinkedIn Connections
  • Reddit (coming soon!)
  • GitHub (coming soon!)
  • Discord (coming soon!)
  • Spotify (coming soon!)

How it works

Surfer Diagram

  1. Click on "Export" to initiate the data extraction process.
  2. The app waits for the target page to load completely.
  3. The system checks if the user is signed in to the platform being scraped.
  4. If not signed in, the user is prompted to sign in.
  5. If signed in, the process continues.
  6. Once signed in, the app interacts with the platform's user interface.
  7. The app then scrapes the user's data from the platform.
  8. Finally, the extracted data is exported and saved to your local storage.

Sample Exported Data

json{ "platform_name": "X Corp", "name": "Twitter", "runID": "twitter-001-1724267514217", "timestamp": 1724267623318, "content": [ "Twitter Post 1", "Twitter Post 2", "Twitter Post 3", ... ] }

Getting Started

To download the app, head over to https://docs.surferprotocol.org/desktop/installation. Or you can go to the releases page.

For instructions on setting up the app locally and contributing to the project, please refer to the Contributing Guidelines and Setup Guide.

See the open issues for a full list of proposed features (and known issues).

License

Distributed under the MIT License. See LICENSE for more information.

Built With

  • Electron
  • React
  • Tailwind
  • Shadcn UI

Contact

Surfer Discord Server - @SahilLalani0 - @JackBlair87 - @T0M_3D

Project Link: https://github.com/Surfer-Org/Protocol/

Star History

Star History Chart

Acknowledgements

Extension points exported contracts — how you extend this code

Window (Interface)
(no doc)
desktop/src/renderer/preload.d.ts
IPreferences (Interface)
(no doc)
desktop/src/renderer/types/interfaces.ts
IAppState (Interface)
(no doc)
desktop/src/renderer/types/interfaces.ts
IRun (Interface)
(no doc)
desktop/src/renderer/types/interfaces.ts
LayoutProps (Interface)
(no doc)
desktop/src/renderer/components/Layout.tsx

Core symbols most depended-on inside this repo

cn
called by 163
desktop/src/renderer/components/ui/cn.js
get
called by 92
sdk/python/surfer_protocol/client.py
customConsoleLog
called by 77
desktop/src/main/preloadFunctions.js
dispatch
called by 41
desktop/src/renderer/components/ui/use-toast.ts
wait
called by 28
desktop/src/main/preloadFunctions.js
waitForElement
called by 12
desktop/src/main/preloadFunctions.js
click
called by 11
desktop/src/main/helpers/menu.ts
getTotalFolderSize
called by 9
desktop/src/main/helpers/platforms.ts

Shape

Function 792
Method 138
Interface 18
Class 14
Route 1

Languages

TypeScript97%
Python3%

Modules by API surface

cookbook/python/knowledge-graph/lib/vis-9.1.2/vis-network.min.js351 symbols
cookbook/python/knowledge-graph/lib/tom-select/tom-select.complete.min.js161 symbols
desktop/src/renderer/state/actions.ts32 symbols
docs/src/components/Search.jsx20 symbols
desktop/src/renderer/components/PlatformDashboard.jsx16 symbols
desktop/src/main/helpers/python.ts16 symbols
docs/src/components/Code.jsx13 symbols
desktop/src/renderer/components/Webview.tsx13 symbols
desktop/src/main/main.ts13 symbols
desktop/src/renderer/components/RunDetails.jsx12 symbols
desktop/src/renderer/components/Header.jsx12 symbols
desktop/src/main/helpers/platforms.ts11 symbols

For agents

$ claude mcp add Protocol \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact