[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81467":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":13,"stars7d":13,"stars30d":13,"stars90d":15,"forks30d":15,"starsTrendScore":16,"compositeScore":17,"rankGlobal":10,"rankLanguage":10,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":19,"hasPages":19,"topics":21,"createdAt":10,"pushedAt":10,"updatedAt":22,"readmeContent":23,"aiSummary":24,"trendingCount":15,"starSnapshotCount":15,"syncStatus":25,"lastSyncTime":26,"discoverSource":27},81467,"x-notion-sync","brianlovin\u002Fx-notion-sync","brianlovin","Sync the people you follow on X into Notion","",null,"TypeScript",32,1,31,0,3,43.5,"MIT License",false,"main",[],"2026-06-12 04:01:33","\u003Cimg width=\"3516\" height=\"2346\" alt=\"Screen Shot 2026-05-18 at 11 16 54@2x\" src=\"https:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fbc5a77f1-62a9-4bbf-b4ad-c155213fdb30\" \u002F>\n\n\n# X → Notion\n\nSync the people you follow on X (Twitter) into a Notion database.\n\nEvery profile becomes a rich Notion page with each person's name, handle, bio, location, avatar and other metadata.\n\nBring your own Anthropic key to enable AI classification. AI helps extract a person's role, industry, interests, location, and companies they're affiliated with.\n\nThis tool runs on [Notion Workers](https:\u002F\u002Fwww.notion.so\u002Fdevelopers\u002Fworkers), so you do not need to host your own sync server.\n\n## Before You Start\n\nYou need:\n\n- A Notion personal access token from [notion.so\u002Fdevelopers\u002Ftokens](https:\u002F\u002Fnotion.so\u002Fdevelopers\u002Ftokens). Enable the Notion API and Workers scopes.\n- An X developer app with Read access and OAuth 1.0a keys.\n- Optional: an Anthropic API key if you want AI classification.\n\nX and Anthropic are paid APIs. The setup script shows an estimate before it starts the first sync.\n\n## Setup\n\nInstall the Notion CLI:\n\n```bash\ncurl -fsSL https:\u002F\u002Fntn.dev | bash\n```\n\nClone and run setup:\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fbrianlovin\u002Fx-notion-sync.git\n```\n\n```bash\ncd x-notion-sync\n```\n\n```bash\nnpm install\n```\n\n```bash\nnpm run setup\n```\n\nYou'll have an opportunity to run a test sync against the most recent 10 profiles you follow. If you're happy with the structure and AI classification, you can complete the backfill by running:\n\n```bash\nnpm run backfill\n```\n\n## X App Keys\n\n1. Go to [developer.x.com → Projects & Apps](https:\u002F\u002Fdeveloper.x.com\u002Fen\u002Fportal\u002Fprojects-and-apps).\n2. Create an app, or open an existing one.\n3. Set **App permissions** to **Read**.\n4. Open **Keys & Tokens**.\n5. Copy the **Consumer Key** and **Consumer Secret** under OAuth 1.0a.\n6. Generate an **Access Token** and **Access Token Secret**.\n7. Paste all four values into `npm run setup`.\n\nYou do not need callback URLs, website URLs, or OAuth 2.0 user authentication settings.\n\n## Costs\n\nCheck Anthropic + X pricing before running a large backfill:\n\n- [X API pricing](https:\u002F\u002Fdeveloper.x.com\u002F#pricing): `\u002Fusers\u002F:id\u002Ffollowing` bills per profile returned.\n- [Anthropic pricing](https:\u002F\u002Fplatform.claude.com\u002Fdocs\u002Fen\u002Fdocs\u002Fabout-claude\u002Fpricing): only used when AI classification is enabled.\n\nThe setup script will help you estimate the cost, but does not guarantee the final cost of a backfill + monthly sync. If you follow lots of people, it will be more expensive!\n\n## Incremental sync\n\nAfter the initial backfill from the `setup` step, the worker will sync newly-followed profiles every 7 days.\n\nThe sync is add-only. If you unfollow someone on X, their Notion page will not be automatically deleted. To save you money, the ongoing sync does not refresh all metadata for every profile. If you want to enable this behavior, please open a pull request or feel free to modify your copy of this repo.\n\n## AI Classification\n\nManage AI classification with:\n\n```bash\nnpm run classification\n```\n\nFrom here, you can enable or disable classification, change the Claude model, update your Anthropic key, or classify rows that still need enrichment.\n\nDisabling AI classification keeps historical data in Notion, but newly-synced profiles won't be enriched.\n\n## Useful Commands\n\n```bash\nnpm run backfill                        # switch test sync to full sync, or restart the import\nnpm run classification                  # manage AI tagging\nnpm run inspect                         # build and print the worker manifest locally\nntn workers sync status                 # check sync health\nntn workers sync trigger xFollowingSync # run a sync now\nntn workers runs list                   # list recent runs\n```\n\nTo change the schedule, edit `schedule: \"7d\"` in `src\u002Findex.ts` and run `ntn workers deploy`. Notion Workers accepts schedules from `5m` to `7d`.\n\n## Development\n\n```bash\nnpm run check\nnpm test\n```\n\nEnd-to-end tests create a real sandbox database in Notion:\n\n```bash\nRUN_E2E=1 npm run test:e2e\n```\n\nThey require `NOTION_API_TOKEN` in `.env`. If you use an internal integration token instead of a personal access token, also set `E2E_PARENT_PAGE_ID` to a page connected to that integration.\n\n## License\n\nMIT — see [LICENSE](.\u002FLICENSE).\n","该项目用于将你在X（Twitter）上关注的人同步到Notion数据库中。其核心功能是为每个关注者创建一个详细的Notion页面，包含姓名、用户名、简介、位置、头像等元数据，并可选地通过Anthropic API进行AI分类，以提取角色、行业、兴趣等信息。项目使用TypeScript编写，基于Notion Workers运行，无需自行托管服务器。适合需要整理和管理社交媒体联系人的个人或团队使用，特别是那些希望利用AI增强数据洞察力的用户。注意，X和Anthropic API为付费服务，在大规模同步前需考虑成本。",2,"2026-06-11 04:05:11","CREATED_QUERY"]