You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
**Vocabulary**: Terminal = VS Code terminal running the selected agent CLI. Session = JSONL conversation file. Agent = webview character bound 1:1 to a terminal.
**One-agent-per-terminal**: Each "+ Agent" click launches the configured backend (`codex` or `claude`) and immediately creates a bound agent. Backends with deterministic session files can poll for the expected JSONL; others rely on project scanning/adoption.
79
80
@@ -89,7 +90,7 @@ JSONL transcripts are adapter-specific: Claude uses `~/.claude/projects/<project
89
90
90
91
**Extension state per agent**: `id, terminalRef, projectDir, jsonlFile, fileOffset, lineBuffer, activeToolIds, activeToolStatuses, activeSubagentToolNames, isWaiting`.
91
92
92
-
**Persistence**: Agents persisted to `workspaceState` key `'pixel-agents.agents'` (includes palette/hueShift/seatId). **Layout persisted to `~/.pixel-agents/layout.json`** (user-level, shared across all VS Code windows/workspaces). `layoutPersistence.ts` handles all file I/O: `readLayoutFromFile()`, `writeLayoutToFile()` (atomic via `.tmp` + rename), `migrateAndLoadLayout()` (checks file → migrates old workspace state → falls back to bundled default), `watchLayoutFile()` (hybrid `fs.watch` + 2s polling for cross-window sync). On save, `markOwnWrite()` prevents the watcher from re-reading our own write. External changes push `layoutLoaded` to the webview; skipped if the editor has unsaved changes (last-save-wins). On webview ready: `restoreAgents()` matches persisted entries to live terminals. `nextAgentId`/`nextTerminalIndex` advanced past restored values. **Default layout**: When no saved layout file exists and no workspace state to migrate, a bundled `default-layout.json` is loaded from `assets/` and written to the file. If that also doesn't exist, `createDefaultLayout()` generates a basic office. To update the default: run "Pixel Agents: Export Layout as Default" from the command palette (writes current layout to `webview-ui/public/assets/default-layout.json`), then rebuild. **Export/Import**: Settings modal offers Export Layout (save dialog → JSON file) and Import Layout (open dialog → validates `version: 1` + `tiles` array → writes to layout file + pushes `layoutLoaded` to webview).
93
+
**Persistence**: Agents persisted to `workspaceState` key `'pixel-agents.agents'` (includes palette/hueShift/seatId). **Layout persisted to `~/.pixel-agents/layout.json`** (user-level, shared across all VS Code windows/workspaces). `layoutPersistence.ts` handles all file I/O: `readLayoutFromFile()`, `writeLayoutToFile()` (atomic via `.tmp` + rename), `migrateAndLoadLayout()` (checks file → migrates old workspace state → falls back to bundled default), `watchLayoutFile()` (hybrid `fs.watch` + 2s polling for cross-window sync). On save, `markOwnWrite()` prevents the watcher from re-reading our own write. External changes push `layoutLoaded` to the webview; skipped if the editor has unsaved changes (last-save-wins). On webview ready: `restoreAgents()` matches persisted entries to live terminals. `nextAgentId`/`nextTerminalIndex` advanced past restored values. **Default layout**: When no saved layout file exists and no workspace state to migrate, a bundled `default-layout.json` is loaded from `assets/` and written to the file. If that also doesn't exist, `createDefaultLayout()` generates a basic office. To update the default: run "Pixel Agents: Export Layout as Default" from the command palette (writes current layout to `webview-ui/public/assets/default-layout.json`), then rebuild. **Export/Import**: Settings modal offers Export Layout (save dialog → JSON file) and Import Layout (open dialog → validates `version: 1` + `tiles` array → writes to layout file + pushes `layoutLoaded` to webview). **Config persisted to `~/.pixel-agents/config.json`** (user-level, shared across windows). `configPersistence.ts` handles read/write with atomic tmp+rename. Currently stores `externalAssetDirectories: string[]` for external asset pack paths. **External asset directories**: Settings modal offers Add/Remove Asset Directory. External furniture merged with bundled assets on boot and on add/remove via `mergeLoadedAssets()` (external IDs override bundled on collision).
@@ -106,17 +106,20 @@ These rules are set to `warn` — they won't block your PR but will flag violati
106
106
```
107
107
CI runs these same checks automatically on every PR.
108
108
4. Open a pull request against `main` with:
109
+
- A **conventional commit PR title** (e.g. `feat: add zoom controls`, `fix: character freezing on terminal close`, `refactor: extract pathfinding module`). CI enforces this format — see [Conventional Commits](https://www.conventionalcommits.org/).
109
110
- A clear description of what changed and why
110
111
- How you tested the changes (steps to reproduce / verify)
111
112
-**Screenshots or GIFs for any UI changes**
112
113
114
+
> **Note:** PRs are merged using **squash and merge** — all commits in your PR are combined into a single commit on `main`. Your PR title becomes the commit message, which is why the conventional commit format matters.
115
+
113
116
## Reporting Bugs
114
117
115
-
[Open a bug report](https://github.com/pablodelucca/pixel-agents/issues/new?template=bug_report.yml) — the form will guide you through providing the details we need.
118
+
[Open a bug report](https://github.com/DavidUmKongs/oh-my-pixel-agents/issues/new?template=bug_report.yml) — the form will guide you through providing the details we need.
116
119
117
120
## Feature Requests
118
121
119
-
Have an idea? [Start a discussion](https://github.com/pablodelucca/pixel-agents/discussions/categories/ideas) in the Ideas category. We love hearing new ideas, and discussing them first helps us collaborate on the best approach together.
122
+
Have an idea? [Open a feature request](https://github.com/DavidUmKongs/oh-my-pixel-agents/issues/new?template=feature_request.yml) — the form will guide you through describing the problem and your proposed solution. You can also browse and join ongoing conversations in [Discussions](https://github.com/DavidUmKongs/oh-my-pixel-agents/discussions).
Copy file name to clipboardExpand all lines: README.md
+4-5Lines changed: 4 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -46,6 +46,7 @@ This repository tracks the `oh-my-pixel-agents` fork of Pixel Agents for VS Code
46
46
-**Sound notifications** — optional chime when an agent finishes its turn
47
47
-**Sub-agent visualization** — Task tool sub-agents spawn as separate characters linked to their parent
48
48
-**Persistent layouts** — your office design is saved and shared across VS Code windows
49
+
-**External asset directories** — load custom or third-party furniture packs from any folder on your machine
49
50
-**Diverse characters** — 6 diverse characters. These are based on the amazing work of [JIK-A-4, Metro City](https://jik-a-4.itch.io/metrocity-free-topdown-character-pack).
50
51
-**Agent inspector** — click an agent to open a pinned inspector showing its current tool, confidence, permission state, and recent timeline without jumping to the terminal.
51
52
-**Timeline debug view** — toggle Debug mode to see each agent’s tool calls, sub-agent branches, and permission waits rendered as rails with duration/approval badges.
@@ -125,7 +126,7 @@ Each furniture item lives in its own folder under `assets/furniture/` with a `ma
125
126
126
127
To add a new furniture item, create a folder in `webview-ui/public/assets/furniture/` with your PNG sprite(s) and a `manifest.json`, then rebuild. The asset manager (`scripts/asset-manager.html`) provides a visual editor for creating and editing manifests.
127
128
128
-
Detailed documentation on the manifest format and asset pipeline is coming soon.
129
+
To use furniture from an external directory, open Settings → **Add Asset Directory**. See [docs/external-assets.md](docs/external-assets.md) for the full manifest format and how to use third-party asset packs.
129
130
130
131
Characters are based on the amazing work of [JIK-A-4, Metro City](https://jik-a-4.itch.io/metrocity-free-topdown-character-pack).
131
132
@@ -163,14 +164,12 @@ For this to work, the architecture needs to be modular at every level:
163
164
-**Agent-agnostic**: Claude Code today, but built to support Codex, OpenCode, Gemini, Cursor, Copilot, and others through composable adapters.
164
165
-**Theme-agnostic**: community-created assets, skins, and themes from any contributor.
165
166
166
-
We're actively working on the core module and adapter architecture that makes this possible. If you're interested to talk about this further, please visit our [Discussions Section](https://github.com/pablodelucca/pixel-agents/discussions).
167
+
We're actively working on the core module and adapter architecture that makes this possible. If you're interested to talk about this further, please visit our [Discussions Section](https://github.com/DavidUmKongs/oh-my-pixel-agents/discussions).
167
168
168
169
169
170
## Community & Contributing
170
171
171
-
We use **[GitHub Discussions](https://github.com/pablodelucca/pixel-agents/discussions)** for questions, feature ideas, and conversations. **[Issues](https://github.com/pablodelucca/pixel-agents/issues)** are for bug reports only.
172
-
173
-
If something is broken, open an issue. For everything else, start a discussion.
172
+
Use **[Issues](https://github.com/DavidUmKongs/oh-my-pixel-agents/issues)** to report bugs or request features. Join **[Discussions](https://github.com/DavidUmKongs/oh-my-pixel-agents/discussions)** for questions and conversations.
174
173
175
174
See [CONTRIBUTING.md](CONTRIBUTING.md) for instructions on how to contribute.
0 commit comments