Feature Proposal: /smalltalk — Side Conversations for Hermes Agent
Author: Apostol Apostolov
Status: Draft
Related: Inspired by pi-jarvis browser extension
1. Problem Statement
When working on complex multi-step tasks with Hermes, users often need quick answers to tangential questions without:
- Losing context in the main conversation thread
- Waiting for a blocking response that derails flow
- Creating messy branching in the chat history
Current friction:
- Interrupting a coding session to ask "what's the syntax for X again?"
- Waiting for research that could happen in parallel
- Context pollution from side queries mixing with main task
2. Proposed Solution: /smalltalk (or /sidetalk)
A parallel subagent session mechanism that:
- Spawns isolated side conversations that run asynchronously
- Queues results for deferred integration
- Never blocks the main session's flow
- Allows multiple concurrent side talks
2.1 Core UX Flow
[User] Working on main task: "Implement JWT auth in this Express app..."
[User] /smalltalk "What were the security concerns with JWT in localStorage again?"
[Hermes] 📎 Side talk #1 queued (est. 15s)
"Security concerns with JWT localStorage"
[Running...]
[Main task continues uninterrupted]
[Hermes - side notification] 📎 Side talk #1 ready
[View] [Merge] [Dismiss]
[User] /smalltalk merge 1
[Hermes] [Integrates concise answer into main context as collapsed note]
2.2 Command Interface
| Command |
Description |
/smalltalk <query> |
Spawn new side conversation |
/smalltalk list |
Show active/completed side talks |
/smalltalk view <n> |
View specific side talk result |
/smalltalk merge <n> |
Fold result into main context |
/smalltalk dismiss <n> |
Discard side talk |
/smalltalk clear |
Dismiss all completed |
2.3 Visual Metaphor (Text Platforms)
Since Telegram/Discord are text-based, side talks appear as collapsible attachments:
📎 Side Talk #2 (ready) — "Check zod union syntax"
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
│ Zod unions: z.union([z.string(), z.number()])
│ or z.string().or(z.number())
│
│ [Merge to Context] [Dismiss] [Keep for Later]
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
3. Technical Implementation
3.1 Architecture
┌─────────────────────────────────────────────────────────┐
│ Main Hermes Session │
│ ┌─────────────────────────────────────────────────┐ │
│ │ User Conversation Thread │ │
│ │ [Task: Implement auth] │ │
│ │ ↓ │ │
│ │ /smalltalk "check zod syntax" │ │
│ │ ↓ │ │
│ │ [Continues main task...] │ │
│ └─────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Side Talk Manager (Async Queue) │ │
│ │ • Queue new side talks │ │
│ │ • Track completion state │ │
│ │ • Handle merge/dismiss actions │ │
│ └─────────────────────────────────────────────────┘ │
│ │ │
│ ┌───────────┼───────────┐ │
│ ▼ ▼ ▼ │
│ ┌──────────────┐ ┌──────────────┐ ┌──────────────┐ │
│ │ Subagent #1 │ │ Subagent #2 │ │ Subagent #3 │ │
│ │ (delegate) │ │ (delegate) │ │ (delegate) │ │
│ │ Light model │ │ Light model │ │ Light model │ │
│ └──────────────┘ └──────────────┘ └──────────────┘ │
└─────────────────────────────────────────────────────────┘
3.2 Implementation Details
Side Talk State Machine:
QUEUED → RUNNING → COMPLETED → {MERGED, DISMISSED}
│ │
└─────────┴──► FAILED (retry or notify)
Context Isolation Options:
- Clean slate — side talk gets query only, no main context
- Selective import — user can tag context lines to include
- Full context — side talk sees entire main thread (risk: pollution)
Recommendation: Start with Option 1 (clean slate) for predictability.
3.3 Integration Points
| Component |
Change |
delegate_task |
Already supports parallel subagents — extend for lightweight queries |
| Session state |
Add side_talks: Dict[id, SideTalk] to session context |
| Message rendering |
New attachment type for collapsible side talk results |
| Command parser |
Add /smalltalk command namespace |
4. Advanced Features (Future)
4.1 Automatic Context Merge
When main task completes or hits a natural breakpoint, prompt:
"3 side talks completed during this session. Merge relevant ones?"
4.2 Side Talk Chaining
/smalltalk "Research OAuth2 flows"
/smalltalk reply 1 "Focus on PKCE specifically"
4.3 Persistent Side Talks
Side talks survive session restart (stored in ~/.hermes/smalltalk/)
4.4 Model Selection
/smalltalk --model gemini-flash "Quick lookup"
/smalltalk --model claude-sonnet "Complex analysis"
Default to cheaper/faster models for side talks.
5. Open Questions
- Result delivery timing: Should completed side talks notify immediately or wait for main task idle?
- Context pollution: How to prevent side talk results from confusing the main thread before merge?
- Platform differences: How does this map to Discord vs CLI vs future GUI?
- Quota/cost: Should side talks count against user's main quota separately?
- Naming:
/smalltalk, /sidetalk, /aside, /parallel?
6. Minimal Viable Implementation
Phase 1 (MVP):
Phase 2:
Phase 3:
7. Similar Prior Art
- pi-jarvis — Browser extension for Pi AI, visual overlay approach
- Claude Code /ask — Can ask questions without changing files
- Cursor /chat — Side panel conversations in IDE
- GitHub Copilot Chat — Separate chat panel for tangential queries
Hermes differentiation: Native async subagents, not just UI separation.
Request for Comments:
- @maintainers: Feasible with current
delegate_task architecture?
- @community: Which UX pattern feels right for your workflow?
- Priority: P2 (nice-to-have) or P1 (workflow blocker)?
Feature Proposal:
/smalltalk— Side Conversations for Hermes AgentAuthor: Apostol Apostolov
Status: Draft
Related: Inspired by pi-jarvis browser extension
1. Problem Statement
When working on complex multi-step tasks with Hermes, users often need quick answers to tangential questions without:
Current friction:
2. Proposed Solution:
/smalltalk(or/sidetalk)A parallel subagent session mechanism that:
2.1 Core UX Flow
2.2 Command Interface
/smalltalk <query>/smalltalk list/smalltalk view <n>/smalltalk merge <n>/smalltalk dismiss <n>/smalltalk clear2.3 Visual Metaphor (Text Platforms)
Since Telegram/Discord are text-based, side talks appear as collapsible attachments:
3. Technical Implementation
3.1 Architecture
3.2 Implementation Details
Side Talk State Machine:
Context Isolation Options:
Recommendation: Start with Option 1 (clean slate) for predictability.
3.3 Integration Points
delegate_taskside_talks: Dict[id, SideTalk]to session context/smalltalkcommand namespace4. Advanced Features (Future)
4.1 Automatic Context Merge
When main task completes or hits a natural breakpoint, prompt:
4.2 Side Talk Chaining
4.3 Persistent Side Talks
Side talks survive session restart (stored in
~/.hermes/smalltalk/)4.4 Model Selection
Default to cheaper/faster models for side talks.
5. Open Questions
/smalltalk,/sidetalk,/aside,/parallel?6. Minimal Viable Implementation
Phase 1 (MVP):
/smalltalk <query>commanddelegate_taskintegration with lightweight modelPhase 2:
Phase 3:
7. Similar Prior Art
Hermes differentiation: Native async subagents, not just UI separation.
Request for Comments:
delegate_taskarchitecture?