Skip to content

Project Mode

Lorenzo edited this page Apr 16, 2026 · 1 revision

Project Mode

Project Mode is JoyBoy's Codex-style local development workflow.

The goal is to let a user attach a local workspace to a conversation, then use JoyBoy as a project-aware assistant that can inspect files, reason about the repository, and eventually help make controlled code changes.

Why It Exists

Normal chat is not enough for repository work.

A useful local coding assistant needs:

  • A selected workspace.
  • A clear project conversation.
  • Tool calls that are visible and bounded.
  • File reads that do not spiral forever.
  • Cancellable runs.
  • Recoverable state.
  • A UI that still feels like a conversation, not a raw terminal dump.

Project Mode should feel closer to a guided local agent workflow than a generic command runner.

Target UX

The intended flow is:

  1. The user clicks the project/workspace entry point.
  2. JoyBoy asks the user to choose a local folder.
  3. JoyBoy creates a new project conversation named after the workspace.
  4. The project name appears clearly in the conversation header.
  5. The assistant can inspect the repository through controlled tools.
  6. Tool progress is shown in the conversation without taking over the whole UI.
  7. The user can stop a run and recover cleanly.

The design should stay close to the normal JoyBoy chat experience, with enough visual difference to show that the conversation is project-aware.

Current Priorities

  • Prevent project-mode runs from continuing after the conversation is deleted.
  • Improve stop/cancel behavior.
  • Keep tool loops bounded.
  • Avoid repeated useless file scans.
  • Make workspace selection more natural.
  • Keep project messages aligned and styled like normal chat messages.
  • Add better empty states and setup guidance.
  • Make code blocks render properly when local models output code.

Runtime Principles

Project Mode should follow a few hard rules:

  • One workspace per project conversation.
  • No project tools without a selected workspace.
  • No infinite tool loops.
  • No destructive filesystem actions without explicit user intent.
  • Tool output should be summarized when it is too long.
  • A stopped run should actually stop.

Long-Term Direction

The long-term goal is a local agent mode that can:

  • Analyze a repository.
  • Maintain lightweight task context.
  • Propose concrete changes.
  • Apply patches safely.
  • Run tests and report results.
  • Keep the user in control.

This should be developed carefully. Reliability matters more than looking impressive for one demo.

Clone this wiki locally