Jump to content

Pikkumies on PMSS

From Pulsed Media Wiki

Pikkumies is an AI helper that lives in your own Pulsed Media seedbox account and does the work instead of describing it. Ask it why your quota is filling up and it measures the folders; ask whether Docker works and it checks the daemon and your containers. Asked for a script, it writes one, tests it on throwaway files and tells you how to run it safely. It ships with 33 tool skills for seedbox work, searching the Pulsed Media wiki and knowledge base among them, and uses the AI credits your services already earn, so it costs nothing extra.

Experimental. Pikkumies is new and it can be wrong. It runs commands in your account with your rights and does the work you ask for without approval prompts. It does not run a delete, a send, or anything that exposes files or a port to the internet, when that could lose or reveal data for good and your own words did not ask for it; the answer then says what was skipped and why. The one exception, a support ticket it may open by itself on a Pulsed Media seedbox, is described below. Keep backups of anything you cannot lose.

The name is the thumb-high man from the sea in the Kalevala, who grows into a giant and fells the oak nobody else could.

Pikkumies and Väinämöinen looking after a server. Community art.

What you can ask it

Type the question the way you would ask a colleague. These all work today on a Pulsed Media seedbox:

You ask What it does
"Why is my download from the seedbox slow?" Checks your account's limits, the server's load and your own transfers, and tells you which one it is, or that it is none of them.
"What is eating my quota?" Measures your folders and biggest files and says what you could clean up. It deletes nothing you did not ask it to delete.
"Which torrents are stalled, and why?" Lists stalled torrents in rTorrent, qBittorrent or Deluge with what the tracker says about each.
"Delete my torrents older than six months, with their data." Lists them with the space they take, removes them with their data because your words asked for that, and reports the space freed.
"My containers vanished." Diagnoses your Docker daemon and containers: a daemon that is down or stuck, a container that exited and why.
"Run 3 nginx containers." Plans it first: free ports, names, mounts, whether other accounts can reach them. Then starts them. It opens a port to the internet only when you asked for one.
"Add this show to Sonarr and start the search." Talks to your Sonarr directly. Radarr, Lidarr, Prowlarr and the other *arr apps work the same way.
"Which of my Prowlarr indexers are failing?" Tests each indexer and lists the errors.
"Find a release of this and send it to my torrent client." Searches your own Prowlarr indexers, or asks Sonarr or Radarr for a show or film already in your library, lists the results with size and seeders, and sends the one you pick. Download links stay out of the chat.
"What did my autobrr filters match today?" Shows what each filter matched or rejected, and switches filters on or off when you ask.
"How do I set up Jellyfin here?" Starts from the Pulsed Media wiki guide for the app and checks the steps against your account.
"Find the newest Debian and Ubuntu ISO torrents and seed them." Finds the official torrents on the publishers' own download pages and adds them to your torrent client.
"What does the knowledge base say about refunds?" Searches the Pulsed Media wiki and knowledge base, downloaded to your account, and quotes the page with its address.
"Is the route to my home connection OK?" Runs a route test from the seedbox to you and gives you the command for testing the other direction from home.
"Back up my config folder every night." Sets up a restic backup, for example to your Storage Box, on a schedule.
"How many AI credits do I have left?" Reads your balance through its own credits tool. It never reads your key.
"Where did my credits go this week?" Shows what you spent per day and per model, and lists the models your endpoint offers with their rates.
"Make this MKV an MP4", "turn this recording into text" Checks whether a video plays in a browser, converts it at low priority without overwriting anything, and transcribes recordings with your own speech-to-text key or a local engine it builds when you ask.
"Remember that my media lives in ~/media/tv." Saves it, so later questions start from it.
"Explain this config file", "write a README for my script" Reads, explains and writes anything in your account.

A conversation, not one question at a time

Type pikkumies on its own and you get a session: ask, follow up, change the subject, correct it. It keeps the whole conversation in view. The three screenshots below are one real session on a test account, in order; the agent's reasoning panels are left out.

First question: it searches the Pulsed Media wiki copy in the account for Jellyfin and answers with the installer, the address and the first-run steps, naming the wiki pages it used.
Second question, same session: it finds the newest Debian netinst and Ubuntu desktop torrents on the publishers' own pages, sees that Debian is already seeding, and adds Ubuntu to rTorrent. It also calls Ubuntu 26.04.1 an interim release, which is wrong.
Third message: told to check again, it reads Ubuntu's page, agrees that 26.04.1 is an LTS release and adds that torrent too. This is why the answers name their sources: you can check them.

Built for the seedbox, not limited to it

The tools Pikkumies ships with are for running a seedbox: torrent clients, the *arr apps, media servers, rclone, restic and borg backups, Docker, performance checks, and the Pulsed Media wiki and knowledge base. The agent itself is general. It has a terminal in your account, it can read and write files, and it plans before it acts. Anything you would do yourself over SSH you can ask it to do: rename a season of files, write a cron script, explain an error message, summarise a log, draft a README.

A real run: asked for a rename script, it writes it, tests it on throwaway files, makes dry run the default and says what it left behind.
pikkumies "write me a small bash script that renames every .mkv file in a folder to lowercase with dots instead of spaces, and explain how to run it safely"

Step by step: install it and ask your first question

Pikkumies reads your AI key from the file ~/.virsilipasKey in your seedbox account. Many accounts already have it there; pikkumies doctor in Step 2 shows whether yours does, and if not, copying it in takes a minute. The whole setup takes a few minutes, most of it the first install.

Step 1: Run the installer

Connect to your seedbox over SSH and run:

~/bin/install-pikkumies.sh

It installs Pikkumies in your own account and adds a daily update and a once-a-minute check for scheduled jobs to your crontab. No root is involved. The agent runtime then builds in the background; on our test account that took about three minutes.

On a new account with at least 400 MiB of RAM, Pikkumies may already be installed: if pikkumies doctor answers, skip this step. On such an account the agent runtime builds at the account's daily update time, or the first time you run pikkumies; that first run starts the build and asks you to come back in a few minutes.

Step 2: Check that everything works

pikkumies doctor
A real run of pikkumies doctor: the key is read from ~/.virsilipasKey and shown masked, the endpoint answers, and the credits left are listed.

Look for your key read from ~/.virsilipasKey, provider: reachable, a credits line and a model. If the agent runtime is still building, doctor says so; wait a minute and run it again.

Step 3: Start a conversation

pikkumies

Type your question and follow up the way you would with a colleague. For one question straight from the shell, put it in quotes: pikkumies "how much of my disk quota am I using?"

If doctor shows no key

If doctor shows no key, add it yourself. Log in to the client area and open AI credits, then Virsilipas AI key, and copy the key. Keep it private: anyone with the key can spend your credits. Then:

nano ~/.virsilipasKey

Put the key after key=, so the file reads:

endpoint=https://virsilipas.mcx.fi/v1
key=your-key-here

Save and close, then run pikkumies doctor again. Pikkumies sets the file so only your account can read it.

Keeping it up to date

Pikkumies updates itself once a day from your crontab, on the line tagged # pikkumies-update. The time of day comes from your account number, so the accounts on one server do not all update at the same moment. The last run's output is in ~/pikkumies/local/update.log.

Updates follow Pikkumies releases, so a change reaches your account once it is in a release; until the first release is published, they follow the newest code. To follow every change instead, run pikkumies configure.

To update right now, run either of these:

pikkumies update
~/bin/install-pikkumies.sh

pikkumies update fetches the newest Pikkumies. The installer first fetches its own newest copy from the platform's public repository, then updates Pikkumies and runs its setup again, which also puts back the crontab lines if they have gone missing. Either way, finish with pikkumies doctor.

An update never touches your settings, your saved lessons or your past sessions. If you edited one of Pikkumies' own files, the update stops and names the file; move your change out of the way and run it again.

The agent runtime underneath is updated separately and only when you ask: type /update in a session, or run pikkumies run update when no other session is open.

To stop the daily update, set autoUpdate.disabled to true in ~/pikkumies/local/config.php; the line comes out of your crontab the next time you start pikkumies. Updating by hand still works.

What it costs

Nothing extra. Pikkumies spends the AI credits your Pulsed Media services earn from the invoices you pay, explained on Pulsed Media AI Credits. Through the credits the model provider does not learn who you are: Pikkumies' requests go on with Pulsed Media's account, among every other customer's, and the credit service does not keep the prompts. What Pikkumies sends, including what it read in your account to answer, still reaches the provider (why go through Pulsed Media). On the default model a question used about 18,000 credits on average in our tests: 51 test questions of everyday seedbox tasks used about 900,000 credits together. At list price and with no account bonus an M1000 S earns 174,750 credits a month, about 10 such questions, and an M10G S 449,500; the full account bonus triples both.

A real run: it answers a balance question with its credits tool, without touching the key file.
pikkumies "how many AI credits do I have left?"

What it will and will not do

  • It does the work you ask for without stopping for approval prompts.
  • Deletes, sends, and anything that would expose files or a port to the internet go through one separate check first. If the action could lose or reveal data for good and your own words did not ask for it, it is not run, and the answer says what was skipped and why. It does not ask you about it and does not hand you the command.
  • Scheduled jobs get the same check. A job you set up in your own words can do what you asked it to do; any other such action is skipped and reported in the job's output.
  • On a Pulsed Media seedbox, when it is stuck on a problem it cannot solve itself, it can ask our support for help without waiting for you: it opens a support ticket by itself. The ticket carries what it tried, why it is stuck, this account's logs and system details and the conversation, with long key-like strings removed, and it says you have not seen it. It opens at most two such tickets a day. This is the one such send that needs no words of yours; to turn it off, run pikkumies configure and ask it to turn automatic tickets off. Anywhere else it does this only if you turn it on.
  • It is built never to read your key. On a Pulsed Media seedbox the key is put in place for you; with a provider of your own you write ~/.pikkumiesKey yourself.
  • It runs as your account. On a Pulsed Media seedbox there is no root. It is built not to look at other accounts' processes or connections.
  • It checks its own work: it searches the documentation and its memory before it acts, checks before it changes data that the change is what you asked for and can be undone, verifies the result after a change, and another check makes sure a stopped turn really finished. Before it edits a file of up to 1 MiB it keeps a copy of it. For real backups it can set up restic or borg, for example to a Storage Box.
  • It can still be wrong, so its answers name their sources.

When you open a support ticket

When a ticket needs work done inside your seedbox account, Väinämöinen, the Pulsed Media support agent, may ask the Pikkumies in your account to do it: run the checks and make the fix, or set up what you asked for. That run uses your account's own AI credits, the ones your services earn from the invoices you pay, the same as when you ask it something yourself, and the reply quotes what Pikkumies was asked to do, so you know exactly what it was set to work on in your account.

Väinämöinen and Pikkumies at the campfire, work done. Community art made by a Pulsed Media customer.

When Pikkumies ran, the reply tells you:

  • that it did the checks, or that it stopped before finishing and Väinämöinen took over from there;
  • the instructions it was given: a description of the job written for your ticket, followed by your own words from the ticket;
  • which files in your account it edited with its file-edit tool, and which commands it ran that can remove files, if any;
  • that the run is saved in your account with your other Pikkumies sessions.

It takes any work inside your own account: fixing a torrent client, Jellyfin, an *arr app, Docker or your web panel, setting an app up or changing its settings, or finding out why transfers are slow or what is filling your disk. When it cannot do part of a job, it reports what and why. It runs as your account, with your account's rights and nothing more: the same rights it has when you start it yourself. What it reads in your account to answer reaches the model provider, the same as in your own sessions (What it costs explains how).

The same standing instructions go with every job. They tell it to:

  • send or expose nothing;
  • never delete your own files, so what goes stays your choice: for a delete you ask for, the reply gives you the exact command;
  • remove nothing on its own except a leftover socket, pid or lock file that nothing is using;
  • keep a copy of a file before changing it;
  • stop only the process it is fixing, and leave the web server and Docker to the platform;
  • never ask for or write your passwords, and add or change an SSH key, login or token only when your own words ask for exactly that;
  • prove each fix with a reading before and after;
  • report sizes and folders, not file or torrent names.

Väinämöinen checks what Pikkumies reports against readings of his own before passing anything on, and finishes what it left. When Pikkumies is not ready in your account, cannot run, or your account is out of AI credits, Väinämöinen does the whole job himself.

If your account has no Pikkumies yet, Väinämöinen may install it for a ticket that needs work in your account when your plan has at least 400 MiB of RAM and your quota has room for it, but never for a ticket about disk space. Before it installs anything, a reply tells you Pikkumies is being set up and that it uses about 2 GB of your disk quota and about 65,000 files of your file quota.

Opening a support ticket from Pikkumies

Pikkumies opens a Pulsed Media support ticket for the account it runs in, so a question about the service does not need a client-area login. Type /ticket, or ask for a ticket in plain words. Pikkumies writes the subject and the message in the user's words and sends the ticket because the user asked for it; a draft the user only asked to see is kept, not sent. The answer shows where the ticket went, the account email, the subject, how the message starts, the service, the priority, and each file with its size. Up to three files the user named can go with it, each at most 1 MiB, of type txt, log, png, jpg or pdf. Common password and key forms are removed from the subject, the message and attached text files; that catches the usual forms, not every secret, so keep passwords out of the request. Images and PDFs go as they are, and nothing else is attached.

The ticket needs the Pulsed Media AI key, which a Pulsed Media seedbox already has, and the email of the Pulsed Media account: the owner's, or a user's who may open tickets. Pikkumies asks for the email once and remembers it. On a Pulsed Media seedbox the ticket names this account's service. The answer gives the ticket number, and the account gets the usual new-ticket email. When the key or the email is not accepted, the answer is the same whichever it was, so check both.

A ticket opened this way carries no authority for account changes: for a cancellation, a refund, a transfer, or a change of the account email or owner, support asks for a client-area login. Tickets opened this way are limited per account and per hour.

When Pikkumies is stuck on a problem it cannot solve inside the account, it can open a ticket with the diagnostics attached instead: the problem, the exact error, what it tried, and for each roadblock what Väinämöinen has that the account does not, such as root on the server, its console when it will not boot, or a view of the other servers. Three files go with it: system facts, this account's processes and logs; its diagnosis, its review and every search it ran; and the conversation with its tool calls. Files in dot directories such as ~/.ssh and Pikkumies' own settings never go. How it sends such a ticket by itself on a Pulsed Media seedbox, and how to turn that off, is under What it will and will not do.

Using Pikkumies from OpenClaw

If OpenClaw runs in the same account, Pikkumies adds a skill to it, so OpenClaw can run Pikkumies' seedbox tools without spending AI credits, ask Pikkumies when a task needs its judgment, open a support ticket after your yes, and run scheduled checks. Using Pikkumies from OpenClaw covers what it does, what it costs and how to turn it off.

Requirements

  • A Pulsed Media seedbox with SSH, and an active service so your account earns AI credits.
  • About 2 GB of disk quota and about 65,000 files of file quota for the agent runtime. Fresh installs measured 2.0 GB and 60,572 files, and 2.2 GB and about 65,300 files on 21 October 2026. Your file quota is 500 files per GiB of disk quota, so plans under about 130 GiB do not have room; Pikkumies says so and does not start a half-finished install.
  • Very little memory while it waits. On a test account with a 200 GiB plan and 4 GB of RAM (21 October 2026), Pikkumies' own processes used about 14 MB while idle, and the whole account averaged 0.2% of one processor core. Each question took about 8 seconds of one processor core, plus the time the AI model needs to answer, and Pikkumies' processes used up to about 270 MB while it ran.
  • Room for the agent runtime's own updater. In that test, pikkumies run update rebuilt the runtime's terminal and web interfaces although no newer version was available: it took 5 minutes, added about 32,000 files and 0.7 GB, and used up to about 1.6 GB of memory, which took the 200 GiB test account past its 100,000-file soft quota. The daily update does not run it.

Troubleshooting

"install-pikkumies.sh
No such file or directory"
Your server has not received the installer yet; it comes with a platform update. Until then, install from GitHub directly, then run pikkumies doctor:
git clone --depth 1 https://github.com/MagnaCapax/mcxPikkumies ~/.mcxPikkumies
~/.mcxPikkumies/pikkumies/bin/pikkumies install
"pikkumies
command not found" right after installing
Open a new SSH session, or run hash -r, so the shell finds the new command.
"Not starting
no model key yet"
There is no key in ~/.virsilipasKey yet. Add it as shown under If doctor shows no key and run pikkumies doctor again.
"The agent runtime is not ready yet"
The runtime is still building, or this run has just started the build. Run pikkumies doctor to see how far it is, and start pikkumies again in a few minutes.
"not installed
Hermes needs about 65,000 files..."
Your plan's file quota cannot hold the agent runtime. Delete unneeded files or move to a larger plan.
doctor shows "provider
not reachable"
Check that the key in ~/.virsilipasKey is complete, with no spaces, and that your service is active.
It answers but did something you did not expect
Tell it so in the same conversation. Every session can be resumed with the command it prints at the end.

Open source

Pikkumies is open source under the Apache 2.0 license: github.com/MagnaCapax/mcxPikkumies. It is built on the open-source Hermes agent and talks to any OpenAI-compatible endpoint, so you can point it at a provider of your own in ~/.pikkumiesKey instead: Configuring Pikkumies has examples.

Community art

Pikkumies and Väinämöinen in pictures made by a Pulsed Media customer.

The board in the ten-secrets picture lists, in Finnish, Väinämöinen's ten secrets: coffee; patience; backups; the logs will tell; trust, but verify; automate; keep it simple; document; sisu (grit); and the sauna solves it. The mug says that secret commands stay secret. In the newer pictures Pikkumies' mug reads "pieni mutta sisukas", small but gritty, and Väinämöinen's reads "kahvi voittaa aina", coffee always wins.

See also