It doesthe work. You sign off.

Tell your chief of staff what you need. It hands the work to your bots, each in its own cloud computer, and they ask before making changes.

We'll email you when your spot opens.

Node.js · OpenRouter · Daytona · Cloudflare D1 Scroll
Chief of Staff delegate_task → Inbox Manager, Scout → both at once Scout web_search “new TypeScript repositories” → automatic Inbox Manager gmail_create_draft “Re: renewal terms” → asks first Issue Triage github_add_comment on issue #412 → approved once Librarian notion_search “onboarding” → automatic Librarian drive_read_file signed-contract.pdf → scanned, read with OCR Scout write_file reports/2026-10-01.md → approved once Librarian telegram_send_message → asks first Inbox Manager calendar_find_free_time “before Thursday” → automatic Scheduler Weekly repo report → next run Monday 09:00

01The run

See every step. Nothing happens out of sight.

Every step streams as it happens: what the model says, which tool it calls, what came back. You can follow a run in the CLI, the web app or over the HTTP API.

  1. a
    It plans, then acts

    The agent loop sends your task and its tools to the model, runs each tool call, and feeds the results back until the job is done.

  2. b
    It stops to ask

    Before a write, a send or a risky command, it shows you the exact arguments and waits for a yes.

  3. c
    It tells you what it cost

    Each run ends with the step count, tokens used, cache hit rate and the cost the provider reported.

~/pekka — zshwaiting

02How it works

Three steps. Then it gets to work.

01

Create a bot

A name and what it's for. It gets its own sandbox, memory and skills, and learns the rest by chatting with you.

NameScout
What it's forHelp me research TypeScript repositories
Instructions · learned from chatWeekly report in reports/, with sources
02

Give it a task

Type it in the web app, run it from the CLI or send it over HTTP. With no task, it follows its saved instructions.

Compare the top three and add a short verdict for each.
Give Scout a task…
03

Approve, then done

Say yes to the changes you want. It comes back with the result and can save what it learned.

Permission required
edit_file reports/2026-10-01.md
DenyApprove once
Verdicts added to the report.

03Chief of staff

Brief one bot. It runs the rest.

Every account starts with a chief of staff. Tell it what you need. It splits the work between your bots, runs them side by side and brings their answers back to you.

CChief of StaffPrimary finished

Get me ready for Thursday's renewal call with Acme.

C

On it. Inbox Manager will go through the Acme threads while Scout checks their news.

IInbox ManagerFinished

BriefSummarise every Acme renewal thread since July, list the open questions and find 30 free minutes before Thursday's call.

SScoutFinished

BriefFind Acme news from the last 90 days, such as funding, leadership changes and launches. Cite sources.

C

Your brief is ready. Acme still wants a three-year price lock and SSO in the base plan, and it raised a Series C in August. You're free 9:30 to 10:00 on Thursday to prepare.

  1. a
    Picks who does what

    It reads your bots' descriptions and writes each one a self-contained brief. If no bot fits, it suggests one and creates it once you agree.

  2. b
    Runs them side by side

    Several handoffs in one reply run at the same time. Each bot works in its own computer, with its own memory, skills and tools.

  3. c
    Lets you watch, then follow up

    A handoff window streams each brief, step and reply. The work stays in that bot's chat, so you can carry on with it directly.

Ask the chief to make it a weekly job, and it schedules the handoff itself.

04The crew

A bot for every job. None of them share a desk.

Each bot keeps its own workspace, memory and skills, so the researcher's notes never end up in the inbox manager's files. The chief of staff decides who gets what.

S

Scout

Repository researcher

Finds new projects, clones the promising ones and writes a sourced weekly report.

Tools
Web search, scraping, shell
Runs
Mondays 09:00
PK-001
I

Inbox Manager

Email assistant

Finds threads that need you, summarises them, drafts replies and finds time for the follow-up call.

Tools
Gmail, Calendar, Contacts
Runs
When the chief asks
PK-002
T

Issue Triage

Maintainer's helper

Reads new issues, tries to reproduce bugs in its sandbox and comments with what it found.

Tools
GitHub, shell
Runs
When you ask
PK-003
L

Librarian

Knowledge keeper

Reads the contracts and scans in your Drive, keeps your Notion pages up to date and sends you a summary on Telegram.

Tools
Drive, Notion, Telegram
Runs
When the chief asks
PK-004

05Features

Built for real work. And built to be trusted with it.

Bots that remember, keep their own files, read your documents, run on a schedule and never act behind your back.

A computer that stays put

Each bot works in its own persistent Linux sandbox on Daytona. It stops after 15 idle minutes and starts again with its files intact.

~/workspace $ lsreports/ edge-kit/ notes.md~/workspace $ pnpm test✓ 148 passed

Nothing changes without a yes

Reads run on their own. Writes, sends and risky commands wait for one-time approval of the exact arguments, and expire after five minutes.

Permission required
gmail_send · to dana@acme.com
DenyApprove once

Memory you can read

Two Markdown files per bot: your preferences and what it has learned. It fills them in as you chat, and you can edit them any time.

PREFERENCES.mdKNOWLEDGE.md
  • Reports live in reports/, one per week
  • Acme signs annual contracts only

Works while you're away

Say "every Monday at 9" and the bot schedules itself. Pause, resume or cancel from the Scheduled page.

MonWeekly repo reportUpcoming
DailyInbox sweepPaused

Skills, loaded when needed

Teach a workflow once as a skill folder. Bots see a short list and load the full instructions only when a task calls for them.

researchgithubreport-formatgmailnotiontelegram

A voice of its own

Give each bot a character for how it talks to you. The work stays exact whatever the voice.

Normal direct and natural
Butler polite, dryly witty
Custom describe your own

Reads PDFs and scans

Drive files and Gmail attachments come back as Markdown, scanned pages and photos included. Parsing and OCR run on your server, with no cloud service.

signed-contract.pdfMarkdown
# Master Services AgreementTerm: 24 months from 1 Nov 2026Renews unless cancelled 60 days ahead

Long tasks keep going

When a task fills half the model's context window, Pekka summarises the earlier steps and carries on. Your request and the latest step stay word for word.

Context window128k tokens
Summarizing earlier work to free up context…

Lines it can't cross

Deleting files, force-pushing, sudo and piping a download into a shell are blocked outright, whether or not anyone is watching.

rm -rfgit push --forcesudocurl … | sh

06Plugins

Works with your tools. Asks before it changes them.

Connect a tool once and all your bots can use it. Pick one to see exactly what bots can do with it.

Off until you say soConnecting a tool leaves access off. Turn it on, or off again, any time.

Tokens stay on the serverEncrypted in your database, never shown to the model or the bot's computer.

Reads run, changes askLooking things up is automatic. Anything that writes or sends waits for your yes.

07Architecture

Runs on your server. Under your control.

Pekka is a Node.js app you run yourself. It calls the services you choose and keeps every credential on the server.

You

Talk to your bots from wherever suits you.

Web appCLIHTTP API + SSE

Pekka

The API and scheduler you run. They hold the keys.

Agent loop and delegationPermission gateSchedulerPDF parsing and OCREncrypted plugin tokens

OpenRouter

The model, any one with tool calling

Daytona

One persistent sandbox per bot

Cloudflare D1

Bots, memory, skills and schedules

Plugins

GitHub, Google, Notion, Telegram, AgentMail

Turn on Google sign-in to share one server with your team. Everyone gets their own bots, memory, schedules and plugin connections, and nobody can see anyone else's.

08Early access

Get early access. Be first to sign off.

Pekka isn't open to everyone yet. Join the waitlist and we'll email you when your spot opens.

  • Chief of staffTakes your requests and hands the work to your bots
  • Your own botsEach with its own cloud computer, memory and skills
  • Your toolsGitHub, Gmail, Calendar, Drive, Notion and Telegram
  • ApprovalsNothing is written or sent without your yes
Permission requiredearly access

Pekka wants to email you when your spot opens.

Questions are welcome in the note too.

01How is Pekka different from a chat assistant?

A chat assistant tells you what to do. A Pekka bot does it: it runs the commands, writes the files and uses your connected tools itself, then reports back. It keeps its workspace and memory between tasks and can run on a schedule.

02Does every bot get its own computer?

Yes. Each named bot has its own persistent Daytona sandbox, plus its own memory and skills. Sandboxes stop after 15 idle minutes and start again on the next task with their files intact.

03Can bots work together?

Yes, through your chief of staff. It sends self-contained briefs to your other bots, runs several at once and brings their answers together. Each bot does the work in its own computer and keeps the brief and its answer in its chat, so you can follow up with it. Bots that receive a handoff can't pass it on.

04What can a bot do without asking?

Read: files, memory, skills, web searches, read-only plugin calls, and a short allowlist of shell commands such as ls and cat. Everything else, including other commands, file and memory writes, schedule changes and anything that sends or publishes, needs one-time approval of the exact arguments.

05Which models can I use?

Any OpenRouter model that supports tool calling. Set PEKKA_MODEL to pick one.

06Can my team share one server?

Yes. Turn on Google sign-in and list the addresses or domains allowed in. Each person gets their own bots, memory, schedules and plugin connections.

07What does it cost?

Pekka is free and open source. You pay OpenRouter for model usage, Daytona for sandboxes, and any optional providers you turn on.

08What can't it do yet?

Bots can't drive a web browser yet, and a bot's own email address is send-only for now. Word, Excel and PowerPoint files can't be read yet. Scheduled tasks run while the pekka scheduler process is running.

Over toPekka.

Your chief of staff is almost ready for you.

We'll email you when your spot opens.