Circles GitHub

Remember your people. Know who to reply to next.

Circles brings your Substack interactions together by person, so you can catch missed replies, reconnect with people who went quiet, and remember where you left off.

Ask Claude to help you catch up. Every reply stays yours.

Free, open-source software. Runs on your own server. Requires some technical setup.

You remember the conversation. Sometimes you forget the person.

Someone comments on your post, restacks your next one, then replies to a Note a week later. You liked talking to them. You meant to keep the conversation going.

Then their name gets buried in your notifications.

Circles connects those scattered interactions, so the next time you see someone’s name, you have the history to go with it.

One person. Your history together.

See someone’s likes, comments, replies, restacks and follows in one contact timeline, alongside your own replies and restacks.

Catch up before you reply.

See your past interactions without digging through notifications.

Find the conversations you left open.

Ask who’s still waiting to hear from you.

Notice when someone goes quiet.

Find people you used to interact with and decide whether to reconnect.

The Circles Companion Chrome extension captures your side of the conversation as you use Substack, helping you see both sides of the relationship.

Ask Claude where you left off.

Connect Circles to Claude and ask:

“Who is this person, and how have we interacted?”
“Who is still waiting on a reply from me?”
“Who used to comment regularly but hasn’t shown up lately?”

Claude looks through the activity Circles has collected and helps you decide who to catch up with.

Its connection to Circles is read-only. It can’t like, post or reply on your behalf. You choose who to talk to and what to say.

Your circle, in your own database.

Circles is free and open source. You run it on your own server, with your data in a database you control.

You can inspect the code, back up your data or move it whenever you like. When you connect Claude, it can read the Circles data needed to answer your questions.

A little setup. Then a clearer picture.

  1. 1. Set up Circles on your server.

    Follow the guide on GitHub and connect your own Substack account.

  2. 2. Add the Chrome extension.

    Capture your replies and restacks as you use Substack.

  3. 3. Connect Claude.

    Ask about your contacts and conversations in plain language.

Circles is a good fit if you’re comfortable deploying a small web app and want to manage your own data. There’s no hosted, sign-up-and-go version.

Before you connect your Substack account.

Circles is an independent tool, not affiliated with or endorsed by Substack.

It connects through Substack’s unofficial API using your session cookie. Treat that cookie like a password. It stays on your server and is encrypted once you configure an encryption key.

Review Substack’s terms before connecting, including its limits on automated access. Use Circles only with your own account. Because the API is unofficial, changes at Substack may interrupt the connection.

A few practical questions.

Is Circles free?

The software is free and open source. Hosting and any Claude plan you use are separate.

How technical do I need to be?

You should be comfortable deploying a small web app. To connect Claude, your Circles server needs a public HTTPS address. The setup guide is on GitHub.

Does it send messages or engage for me?

No. Claude’s connection is read-only. You write and send your own replies.

Does it show everyone who reads my work?

Circles builds contact histories from the activity it collects. It doesn’t tell you about silent readers who leave no recorded interaction.

What does the Chrome extension do?

It captures your own Substack activity, including replies and restacks, so you can see what you contributed alongside the other person’s interactions.

Come back knowing where you left off.

Find the reply you missed. Remember the person behind the name. Pick up a conversation you wanted to continue.