mpfaffenberger / mpfaffenberger/code_puppy

Feature Request: Multichannel “Quick Invocation” Mode

Open
#219 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
Python
Stars
814
Forks
278
Avg merge
2d 5h
Merged PRs (30d)
76

Description

Feature Request: Multichannel “Quick Invocation” Mode (Daemon + Router) with Persistent Indexed Memory & Cache
Use case / motivation

A lot of people use Code Puppy like a “launcher assistant” (Raycast-style): short, mostly independent questions, minimal context, fast latency.
In this usage pattern, it’s costly when the runtime:

  • pulls too much conversational history by default,
  • repeatedly invokes the same agents/tooling pathways for similar micro-requests,
  • rebuilds context/plans redundantly across invocations instead of reusing cached artifacts and durable memory.

I’d like to propose a multichannel mode optimized for:

  • independent prompts (stateless-ish per request),
  • minimal context assembly (retrieve only what’s needed),
  • incremental reuse of prior work via a persistent indexed memory + output cache,
  • optional daemon/event-loop runtime so multiple clients can share the same cache/memory.

This feels adjacent to:

  • ACP support (#90) as a decoupled client/server interface,
  • persistent shared KB across agents (#74),
  • stdio NDJSON wrapper mode (#182) for integrations (launchers, editors, etc).

Proposed concept: “multichannel mode”

Definition: A runtime mode where each request is treated as an independent “turn” in a specific channel_id (client channel), with:

  • short-term state scoped to that channel (small sliding window),
  • long-term state stored in a persistent memory layer (indexed),
  • caching of redundant agent/tool results across channels (where safe).

Typical clients:

  • CLI (interactive or non-interactive)
  • a launcher (Raycast, Alfred, etc.)
  • editor integration (VSCode, etc.)

Architecture sketch (high-level)

Option A (preferred long-term): Daemon + protocol (ACP)

  • code-puppy daemon runs as a long-lived event loop
  • clients connect and send prompt events
  • daemon maintains caches + memory + agent pool

Option B (MVP-friendly): stdio NDJSON subprocess

  • code-puppy --stdio --mode multichannel reads JSON events from stdin and writes JSON events to stdout
  • wrappers can keep a single process alive (or restart while still persisting memory on disk)

Key building blocks
Supervisor (“shadow”) agent as the event-loop orchestrator

A thin orchestrator that:

  1. receives user input
  2. creates a structured record (turn log)
  3. routes the request to the minimal skill/agent
  4. captures output + tool results
  5. returns a single response payload to the client
  6. commits durable memory + cache entries

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by tracing the proposed code-puppy daemon and code-puppy --stdio --mode multichannel entry points, then review the related ACP, persistent shared KB, and stdio NDJSON issues. Done would require a concrete, tested scope for independent channels, persistent memory, and safe cache reuse; this proposal names no files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
json, python
Domain
api, backend, cli
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.