Here are some more features in Personal Agent that you should steal to enhance your own agent harness.

If you haven't seen Part 1, check it out.

Reply with Selection

A small and somewhat insignificant feature, but very useful. Reply with selection allows you to highlight text from the transcript and inject it directly into the input box as quoted markdown. I use this feature a lot when I want to respond to certain parts of the agent's response.

New Conversation Context Seeding

Suggested Context

This feature is still being iterated on, but the idea is that sometimes I want to be able to seed a conversation with context from past sessions. This feature is on my new chat screen and executes a scored ranking algorithm on sessions within the last 2 days based on the text you type into the input box. It explicitly does NOT use semantic retrieval (RAG) to do this to avoid requiring an embedding model. Once you select up to 3 conversations, the conversations are compacted and attached to your new session.

The scoring mechanism:

The suggested-context ranking is a lightweight lexical search over recent conversations, not embeddings. It breaks your draft into meaningful terms, matches those against each conversation's title, workspace, transcript index, and generated summary, then weights title/phrase matches most heavily. It boosts conversations from the current workspace, conversations with summaries, unresolved/in-progress threads, and newer activity. A thread is only auto-selected when the top match is clearly dominant, so the UI suggests context without eagerly attaching random vaguely-related stuff.

Summarize & New

Allows you to compact a conversation and start a new session from that compacted summary.

Fork

Creates a new conversation up to a specific point in an existing conversation (lifted from Pi).

Parallel Execution

This is another experimental feature, think of it as Claude Code's /btw feature but beefed up.

Pi already has the ability to send a steering message to break into the agent loop at the next possible opportunity. Or Followup which queues a message to execute.

The parallel feature works like this:

  • PA forks the current conversation at the last stable point, so the side thread gets the same context without corrupting the main agent loop.
  • The side thread runs independently and tracks useful metadata like touched files, attachments, side effects, and possible overlap with work happening in the main thread.
  • When the side thread finishes, PA automatically injects the result back into the main conversation as a "Parallel response" once the parent thread is idle.
  • If the parent is still busy, the result waits in a small Parallel panel where you can import it, skip it, cancel it, or open the side thread directly.

SSH Remotes

Another experimental feature, SSH Remotes is a way for PA to SSH into another machine, install a small Pi and PA bundle and use that machine as a remote execution environment.

The desktop app is still the main interface, but being able to keep an agent loop running on another machine is pretty powerful.

This is still highly experimental and untested. I just haven't had a chance to use it much yet.

That's It for Now

I'm still adding features, but that about wraps up the main features I've added in the last few months of working on PA. I hope it's seeded some ideas for you while you build your own custom harness.

Thanks again to @badlogicgames for the wonderful Pi and the community here on X. I've gotten quite a few ideas from stuff I've seen on here.