Testing Paperclip: What I Learned

Paperclip dashboard showing agent orchestration UI

Paperclip recently caught my attention as it allows you to orchestrate teams of specialised AI agents through a beautiful self-hosted web UI, so I had to give it a try.

What Works Well

The concept is solid: specialized agents for different tasks, all tracked through a ticketing system. The UI looks clean and modern. Navigation feels intuitive. Watching my “CEO” agent hire a UI/UX designer, then a CTO, all coordinating through the interface, was entertaining.

For users who want AI agent orchestration without building everything from scratch, Paperclip provides a polished starting point.

Where It Fell Short for Me

I deployed Paperclip using Docker Compose (my preferred approach for managing services). The setup required some debugging—it always does, of course. Permissions, configs of some utilities not where I was expecting to find them. Probably my fault for trying to optimise too early but, really, I was trying to learn. Nothing insurmountable, but it added complexity not needed at the beginning of a project.

More importantly, I noticed my coding credits depleting steadily while Paperclip was running… with nothing actually happening. My team consisted of a CEO and a designer, happily chatting away, checking tickets in and out, burning credits through heartbeat checks and status polls. The UI showed “agents working” but no real output was being produced.

The pretty interface, it turns out, hides the mechanics. For someone who lives in logs and CLI output, this opacity was a little confusing.

The Simpler Alternative

I stepped back and asked: what am I actually trying to achieve here? Agent orchestration. I then investigated how OpenClaw could solve the same problem and realised I could probably achieve most of what I wanted without the extra software and overhead. Like I said, the UI/dashboard is nice but I can’t just sit there and watch the credits slowly disappear.

If you’re already running OpenClaw, n8n, or similar tools? You’re probably already 80% there with infrastructure you understand end-to-end.

What Paperclip Does Differently

Here’s where Paperclip differs from other harnesses. It’s an orchestrator of harnesses, therefore it can orchestrate multiple different AI harnesses as a single team. As Paperclip puts it “if OpenClaw is an employee, Paperclip is the company”. The employees don’t need to be all of the same type, you could have Claude Code, an OpenClaw and an Hermes Agent all working as part of the same team/organisation.

Paperclip on GitHub — check out the project if you’re curious.

All working together, checking out tickets, assigning work to each other. Paperclip lets you mix and match.

For me, that wasn’t the missing piece. But if you’re building a multi-agent system where different agents need different strengths, it’s worth considering.

If You Want to Try It

The concept shows promise. The project has real potential. If you’re curious about AI agent orchestration and want something with a polished UI, give it a spin.

Learn from my mistakes:

  • When deploying with Docker, pin a stable release, not latest
  • Watch your credit usage closely until you understand what it’s doing (maybe set some alerts if you can)
  • Start with a small project to see results quickly
  • Understand that there is some complexity going on which is nicely hidden under the UI

If you, on the other hand, are already using some alternative AI harness and all you want is an easier way to manage an AI team/agents, look more deeply into what your software of choice already supports.

Hope it helps!

Andrea

Related Articles

Re-share – Linux permissions 101

Interesting article on Linux permissions. It explains how to recognise which permission system might be in use (SELinux, ACLs), the meaning of the special bits (setuid, setgid, sticky), how umask works, and more.

The basic Linux permission model — owner, group, others with read/write/execute — is just the beginning. Once you start dealing with shared directories, web servers, or multi-user systems, you will need to understand the more advanced features too.

Read the full article on Opensource.com

Enjoy!

Related Articles

AWS dynamic IP ranges

Need to know the dynamic IP ranges used by AWS in a specific region? AWS publishes this as a JSON file.

curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq '.prefixes | .[] | select((.region == "eu-west-1") and (.service == "EC2")) | .ip_prefix' | sed 's/"//g'

This filters for EC2 in eu-west-1 (Ireland) and outputs CIDR blocks.

To check another service:

curl -s https://ip-ranges.amazonaws.com/ip-ranges.json | jq '.prefixes | .[] | select(.service == "CLOUDFRONT") | .ip_prefix' | sed 's/"//g'

Useful for firewall rules.

Enjoy!

Sys admin levels explained

Interesting article on the different levels and skill sets of System Administrators. It breaks down what separates a junior sysadmin from a senior one and the kind of knowledge you accumulate along the way.

Whether you are just starting out or have been managing servers for years, it is a good read to reflect on where you are and what you might want to learn next.

Read the full article on Linux Journal

Enjoy!

The politics of the Linux desktop

Open Source software was becoming more and more popular in 2009, even though many of these applications were still little known. According to PCWorld, here are ten of the greatest.

Firefox — The open source browser that challenged Internet Explorer and changed the web.

Chromium — The open source project behind Google Chrome. Fast, clean, and constantly evolving.

OpenOffice.org — The free office suite that could read and write Microsoft Office files.

VLC Media Player — Plays almost anything you throw at it, no codec packs needed.

GIMP — The GNU Image Manipulation Program. Not quite Photoshop but incredibly powerful for a free tool.

Apache — The web server that powered most of the internet.

MySQL — The database behind countless websites and applications.

PHP — The scripting language that made dynamic websites easy.

Linux — The kernel that runs everything from phones to supercomputers.

WordPress — Started as a blogging platform, grew into a CMS that now powers a significant portion of the web.

Check out the original article on PCWorld for the full list with descriptions.

Most of these are still going strong today. That’s the power of open source. :-)

How to soft reset Linux disks

Sometimes disks stop responding and cause system slowness because the kernel is waiting for a response that never comes. The disk appears 100% utilised in iostat even though nothing is being read or written.

To avoid rebooting, reset the device. First find it:

lsscsi

Then remove and rescan:

echo 1 > /sys/block/sdX/device/delete
echo "- - -" > /sys/class/scsi_host/hostX/scan

Replace sdX with the affected device and hostX with the SCSI host number from lsscsi.

Hope it helps!

Find sdx device/ATAx mappings

When dealing with hardware, you often see log messages like:

ata9: hard resetting link
ata9: SATA link up 1.5 Gbps (SStatus 113 SControl 310)

To map an ata number to the actual sdX device:

ls -l /sys/class/ata_device/ata9/device/host*/target*/*/block

This shows which sdX corresponds to ata9. Check dmesg for the initial discovery mapping too.

Enjoy!

Convert Squid/timestamps to a human readable format

Somebody had the brilliant idea of using Unix timestamps in Squid log files. It makes parsing easy but reading them is not so human-friendly.

This is an elegant way of solving the problem:

cat /var/log/squid/access.log | perl -p -e 's/^([0-9]*)/"[" . localtime($1) . "]"/e'

The Perl one-liner captures the timestamp at the beginning of each line, converts it to a human-readable date with localtime(), and replaces it inline. The /e flag tells Perl to evaluate the replacement as code rather than a string.

Hope it helps!

sed – match and replace BIND/DNS serial number programmatically

I had to make modifications to several BIND zone files. Sed proved itself invaluable once again.

The zone files looked like this:

domain.com. IN SOA ns1.domain.com. postmaster.domain.com. (
               2015021001   ; Serial
               600          ; Refresh (10 minutes)
               1800         ; Retry (30 minutes)
               3600000      ; Expire (1000 hours)
               3600         ; Minimum (1 hour)
               )

To update the serial number on every zone file at once:

sed -i 's/[0-9]\{10\}\s*; Serial/2016020101   ; Serial/' *.zone

This matches a 10-digit number followed by optional whitespace and “; Serial”, then replaces it with the new serial. The -i flag edits files in place — test without it first to see what would change.

Enjoy!