Copying a Bluesky list sounds simple. Paste a list, duplicate the members, done. The risky part is invisible.

I would still add a review step.

A public list is someone else's context. It might be excellent. It might also include inactive accounts, topic drift, event-only accounts, duplicates from an old workflow, or people you would never have chosen yourself.

Use TheBlue.social's Bluesky list copier to paste a public Bluesky list or starter pack, remove accounts that do not fit, then create your own version.

Start with the kind of list you actually want

Bluesky lists are not all the same.

The official user lists documentation says every list has a purpose. The two everyday purposes are:

  • curatelist for list feeds or interaction gating
  • modlist for muting or blocking accounts

Choose the purpose before you copy anything.

If your goal is a reading list, research list, conference list, local community list, or account group you want to browse later, create a custom list.

If your goal is to mute or block a group of accounts, create a moderation list instead. The same official docs describe list mutes and list blocks as moderation actions on mod lists.

Do not turn a normal discovery list into a moderation list just because the tool lets you. A curation list says "these accounts belong together." A moderation list says "I may apply an account-level safety action to this group."

Keep those judgments separate.

Copy the source, not the owner's assumptions

A good list usually has a strong original reason:

  • local journalists
  • indie game developers
  • climate researchers
  • conference speakers
  • artists in one niche
  • accounts for a breaking-news beat

The weak copy is "I copied this because it was popular."

The better copy is "I copied this because I need a list for a specific job."

Before creating your version, write the job in one sentence:

This list is for finding practical Bluesky product builders to read twice a week.

That sentence becomes the filter.

Remove an account when it does not fit. Narrow the source list when it is almost right but too broad. For a list that mixes people, publications, bots, and brands, decide which types belong in your version.

Your version only needs to be useful for the job you named.

Check the source list before trusting it

Bluesky's app.bsky.graph.getList endpoint returns a list and its members. The official docs also note that public endpoints can be called through the public AppView API.

That makes public lists easy to inspect, which is good. It also means old or messy lists are easy to copy, which is where the trouble starts.

I check five things before copying:

  • List name - does it match what I expected from the shared URL?
  • Description - does the creator explain why these accounts are together?
  • Member count - is this a tight list or a giant bucket?
  • Account mix - people, companies, bots, publications, event accounts, or archives?
  • Obvious stale accounts - names or bios tied to old events, abandoned projects, or changed topics?

This pass catches obvious mismatches before they become your list.

Keep the source link in the description

TheBlue.social suggests a description that includes the original source URL.

Keep it.

The source note helps later. It tells you why the list exists, where it came from, and what to revisit if you want to refresh it.

I usually leave something like:

Source: https://bsky.app/profile/example.com/lists/3abc123

Edited for: active product builders, no brand-only accounts.

Future me can work with that.

Preserve credit without outsourcing judgment

I also avoid pretending the copied list is original work.

If the source list did most of the discovery work, the description should say so. That is fair to the creator and useful to anyone who sees your version later.

Credit does not mean you have to keep every member. A copied list can respect the source while still removing accounts that do not match your use case.

The clean version is:

  • source URL stays in the description
  • destination name reflects your specific use
  • removed accounts are not treated as a public criticism
  • future edits follow your reason, not the source creator's reason

This keeps the workflow low-drama. You can learn from a good public list without turning your account into a mirror of someone else's network.

Decide whether you are copying a list or converting a starter pack

Starter packs add one more wrinkle.

Bluesky's app.bsky.graph.getStarterPack returns starter pack data, including the underlying list reference. In practical terms, a starter pack can be reviewed like a list of accounts, but the user intent is different.

A starter pack is for discovery and onboarding. A custom list is for ongoing use.

I convert a starter pack into a list when:

  • I want a timeline I can open repeatedly
  • I want to keep the group after the starter pack changes
  • I want to remove accounts before using it
  • I want a working list for a team, event, beat, or research topic

If you only want to follow some accounts from the pack, use Follow a Bluesky List instead. If you want a durable list under your own account, use Copy a Bluesky List or Convert Bluesky List and Starter Pack.

The decision is simple:

  • follow selected accounts when you want them in your main Following feed
  • create a custom list when you want a separate reading surface
  • create a starter pack when you want to recommend accounts to other people
  • create a moderation list only when you intend to mute or block with it

Review accounts in batches

Large lists punish overconfidence.

If the source has 30 accounts, I can scan the whole thing. If it has 800, I review by search terms and account types.

Useful batch passes:

  • remove brands if the list is meant to be people
  • remove event accounts for past events
  • search for "newsletter", "bot", "jobs", or "hiring" if they are not part of the goal
  • keep publications only when they are genuinely useful sources
  • remove accounts where the bio no longer matches the list topic

I also choose the destination name during this pass.

"Copy of AI" is not useful. "AI policy researchers" is useful. "Local Singapore civic sources" is useful. "Game audio people to read weekly" is useful.

Name the list for the job it does.

Use moderation lists carefully

The /copy-bluesky-list tool can create a moderation list, but I would treat that as a separate workflow.

Moderation lists are powerful because they can be muted or blocked as a group. The official user-list docs describe modlist as a list of users for muting or blocking. They also note that mute state is private, while list blocks are block records.

Reserve moderation lists for accounts where a group mute or group block is the intended action.

If you are copying a moderation list from someone else, use Fork a Bluesky Moderation List and remove accounts you do not personally want included. Shared moderation is useful, but it still deserves your judgment.

My rule:

  • custom list for reading
  • starter pack for recommending
  • moderation list for safety decisions

When in doubt, do not create a moderation list. Create a custom list first. You can always decide later whether a stricter action is warranted.

Do not copy every update forever

Copying is a snapshot. Treat it as one.

If the original creator keeps editing their list, you may not want every future change. Your version should reflect your reason, not theirs.

I review copied lists on a schedule:

  • after one week for a new list
  • after a major event ends
  • after a topic changes
  • after the list stops feeling useful
  • before sharing the list publicly

A copied list can become stale for boring reasons. People change jobs, publications close, projects pivot, automated accounts get abandoned, and event accounts go quiet.

Reviewing the list keeps the copy honest.

What I remove later

The cleanup pass is usually easier than the first review.

I remove accounts when:

  • I never open their posts from the list
  • they are useful but belong in a different list
  • their topic drifted away from the list purpose
  • they mostly repost without adding signal
  • they make the list too noisy for the job I gave it

A narrow purpose makes this cleanup much easier. Vague lists are hard to maintain. A list with a clear job tells you what to remove next.

A simple copy workflow

Here is the version I use:

  1. Find the source list or starter pack.
  2. Paste it into Copy a Bluesky List.
  3. Choose the destination type: custom list, starter pack, or moderation list.
  4. Name the new list for the job it does.
  5. Keep the source URL in the description.
  6. Remove accounts that do not fit.
  7. Create the copied version under your Bluesky account.
  8. Review it after a week.

The review takes longer than blind copying, but it is still much faster than building the list from scratch.

The list you copy gets you 80% of the way there. The review step makes it yours.

Last updated: June 11, 2026