Files
wehub-resource-sync 426e9eeabd
Voice Workbench / headless workbench (mocked backends) (push) Has been cancelled
Voice Workbench / real acoustic lane (nightly, provisioned only) (push) Has been cancelled
ci / test (push) Has been cancelled
ci / lint-and-format (push) Has been cancelled
ci / build (push) Has been cancelled
ci / dev-startup (push) Has been cancelled
gitleaks / gitleaks (push) Has been cancelled
Markdown Links / Relative Markdown Links (push) Has been cancelled
Quality (Extended) / Homepage Build (PR smoke) (push) Has been cancelled
Quality (Extended) / Comment-only diff guard (push) Has been cancelled
Quality (Extended) / Format + Type Safety Ratchet (push) Has been cancelled
Quality (Extended) / Develop Gate (secret scan + UI determinism) (push) Has been cancelled
Quality (Extended) / Develop Gate (lint) (push) Has been cancelled
Chat shell gestures / Chat shell gesture + parity e2e (push) Has been cancelled
Cloud Gateway Discord / Test (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx @biomejs/biome check packages/lifeops-bench/src, benchmark-lint) (push) Has been cancelled
Benchmark Bridge Tests / benchmark (bunx vitest run --config packages/lifeops-bench/vitest.config.ts --root packages/lifeops-bench --passWithNoTests, benchmark-tests) (push) Has been cancelled
Build Agent Image / build-and-push (push) Has been cancelled
Dev Smoke / bun run dev onboarding chat (push) Has been cancelled
Dev Smoke / Vite HMR dependency-level smoke (push) Has been cancelled
Electrobun Submodule Guard / electrobun gitlink is fetchable (push) Has been cancelled
Publish @elizaos/example-code / check_npm (push) Has been cancelled
Publish @elizaos/example-code / publish_npm (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / verify_version (push) Has been cancelled
Publish @elizaos/plugin-elizacloud / publish_npm (push) Has been cancelled
Sandbox Live Smoke / Sandbox live smoke (push) Has been cancelled
Snap Build & Test / Build Snap (amd64) (push) Has been cancelled
Snap Build & Test / Build Snap (arm64) (push) Has been cancelled
Test Packaging / elizaos CLI global-install smoke (node + bun) (push) Has been cancelled
Cloud Gateway Webhook / Test (push) Has been cancelled
Cloud Tests / lint-and-types (push) Has been cancelled
Cloud Tests / unit-tests (push) Has been cancelled
Cloud Tests / integration-tests (push) Has been cancelled
Cloud Tests / e2e-tests (push) Has been cancelled
CodeQL Advanced / Analyze (javascript-typescript) (push) Has been cancelled
Deploy Apps Worker (Product 2) / Determine environment (push) Has been cancelled
Deploy Apps Worker (Product 2) / Deploy apps worker to apps-control host (${{ needs.determine-env.outputs.environment }}) (push) Has been cancelled
Deploy Eliza Provisioning Worker / Determine environment (push) Has been cancelled
Deploy Eliza Provisioning Worker / Deploy worker to Hetzner host (${{ needs.determine-env.outputs.environment }} @ ${{ needs.determine-env.outputs.deployment_sha }}) (push) Has been cancelled
Dev Smoke / Classify changed paths (push) Has been cancelled
supply-chain / sbom (push) Has been cancelled
supply-chain / vulnerability-scan (push) Has been cancelled
Build, Push & Deploy to Phala Cloud / build-and-push (push) Has been cancelled
Test Packaging / Validate Packaging Configs (push) Has been cancelled
Test Packaging / Build & Test PyPI Package (push) Has been cancelled
Test Packaging / PyPI on Python ${{ matrix.python }} (push) Has been cancelled
Test Packaging / Pack & Test JS Tarballs (push) Has been cancelled
UI Fixture E2E / ui-fixture-e2e (push) Has been cancelled
UI Fixture E2E / fixture-e2e (push) Has been cancelled
UI Story Gate / story-gate (push) Has been cancelled
vault-ci / test (macos-latest) (push) Has been cancelled
vault-ci / test (ubuntu-latest) (push) Has been cancelled
vault-ci / test (windows-latest) (push) Has been cancelled
vault-ci / app-core wiring tests (push) Has been cancelled
verify-patches / verify patches/CHECKSUMS.sha256 (push) Has been cancelled
Voice Benchmark Smoke / voice-emotion fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voiceagentbench fixture smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench-quality unit smoke (push) Has been cancelled
Voice Benchmark Smoke / voicebench TypeScript unit (no audio) (push) Has been cancelled
Voice Benchmark Smoke / voice bench smoke summary (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/app-core test bun run --cwd packages/elizaos test bun run --cwd packages/cloud/shared test], app-and-cli) (push) Has been cancelled
Windows CI / windows ([bun run --cwd packages/scenario-runner test bun run --cwd packages/vault test bun run --cwd packages/security test bun run --cwd plugins/plugin-coding-tools test], framework-packages) (push) Has been cancelled
Windows CI / windows ([bun run --cwd plugins/plugin-elizacloud test bun run --cwd plugins/plugin-discord test bun run --cwd plugins/plugin-anthropic test bun run --cwd plugins/plugin-openai test bun run --cwd plugins/plugin-app-control test bun run --cwd plugins/pl… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run build --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/agent --concurrency=4 node packages/scripts/run-bash-linux-only.mjs scripts/verify-riscv64-buildpaths.sh node packages/scripts/run… (push) Has been cancelled
Windows CI / windows ([node packages/scripts/run-turbo.mjs run typecheck --filter=@elizaos/core --filter=@elizaos/shared --filter=@elizaos/cloud-shared --concurrency=4 bun run --cwd packages/core test bun run --cwd packages/shared test], core-runtime, 75) (push) Has been cancelled
chore: import upstream snapshot with attribution
2026-07-13 12:43:05 +08:00

136 lines
4.6 KiB
Markdown

# Eliza Code
An async coding agent terminal app built on ElizaOS - like Claude Code, but with fully asynchronous task execution and continuous conversation.
## Features
- **Dual-Pane Terminal UI**: Chat pane for conversation, task pane for monitoring progress
- **Async Task Execution**: Tasks run in the background while you continue chatting
- **Multiple Chat Rooms**: Create separate conversation contexts
- **Coding Tools**: File operations, shell commands, search, and more
- **Task Context Injection**: The agent knows about ongoing tasks and their progress
## Prerequisites
- [Bun](https://bun.sh/) runtime
- OpenAI or Anthropic API key
## Installation
```bash
cd eliza-code
bun install
```
## Configuration
Copy the environment example and add your API key:
```bash
cp .env.example .env
# Edit .env and add your OPENAI_API_KEY or ANTHROPIC_API_KEY
```
For OpenAI-compatible endpoints, `ELIZA_OPENCODE_*` forwarding, and direct
provider selection, see [MODEL_PROVIDERS.md](MODEL_PROVIDERS.md).
## Usage
Start Eliza Code:
```bash
bun start
```
### Keyboard Shortcuts
| Key | Action |
| ---------- | ------------------------------------------- |
| `Enter` | Send message |
| `Tab` | Toggle focus between chat/task panes |
| `Ctrl+N` | Create new chat room |
| `Ctrl+Q` | Quit |
| `Ctrl+↑/↓` | Scroll chat history or task output |
| `↑/↓` | Navigate task list (when task pane focused) |
### Example Commands
Once running, you can chat with the agent:
```
> list files in src
> read the package.json
> search for "TODO" in the codebase
> run npm test
> create a task to implement user authentication
```
## Architecture
```
eliza-code/
├── src/
│ ├── index.ts # Interactive TUI entry point (`eliza-code`)
│ ├── acp.ts # Agent Client Protocol entry point (`eliza-code-acp`)
│ ├── cli.ts # CLI arg parsing / mode select
│ ├── App.ts # Root TUI wiring
│ ├── components/ # Terminal UI components (@elizaos/tui)
│ │ ├── MainScreen.ts # Composes status bar + chat/task split
│ │ ├── ChatPane.ts
│ │ ├── TaskPane.ts
│ │ ├── StatusBar.ts
│ │ └── HelpOverlay.ts
│ ├── lib/
│ │ ├── agent.ts # Eliza runtime setup (loads plugin-openai etc.)
│ │ ├── model-provider.ts # Provider selection (ELIZA_CODE_PROVIDER)
│ │ ├── session.ts / store.ts # Session + Zustand state
│ │ └── cwd.ts # CWD tracking (no filesystem listing)
│ └── types.ts # TypeScript types
└── scripts/
└── write-dist-tsconfig.mjs # Emits a paths-free dist/tsconfig.json (see Gotcha below)
```
> **Do not remove `scripts/write-dist-tsconfig.mjs` from the `build` script.** Bun applies the
> nearest tsconfig's `compilerOptions.paths` **at runtime**, and this package's tsconfig maps the
> externalized `@elizaos/plugin-*` to their types-only `.d.ts`. Without the emitted paths-free
> `dist/tsconfig.json`, `bun dist/index.js` loads a `.d.ts` and throws `ReferenceError` on first
> plugin import. The cockpit's PTY terminal (`@elizaos/plugin-pty`) spawns exactly this
> `dist/index.js` via `ELIZA_CODE_BIN`, so dropping the step silently re-breaks every cockpit
> terminal spawn (#11043).
## Available Actions
The agent can use these actions:
In this example, the **main agent** is an orchestrator (no filesystem tools). It uses:
- **@elizaos/plugin-agent-orchestrator**: task creation + lifecycle (CREATE_TASK, LIST_TASKS, etc.)
- **@elizaos/plugin-shell**: shell execution (when enabled) for high-level commands
All file reading/writing/editing and detailed repo work happens inside **worker sub-agents** (Codex, Claude Code, SWE-agent, etc.).
## How It Works
1. **Chat with the agent** in the left pane
2. **Watch tasks execute** in the right pane
3. Tasks run **asynchronously** - you can continue chatting while they work
4. The agent receives **task context** so it knows what's happening
5. Switch between tasks to view different outputs
## Development
```bash
# Run with watch mode
bun dev
# Type check
bun run tsc --noEmit
```
## Built With
- [ElizaOS](https://elizaos.github.io/eliza/) - Agent framework
- [@elizaos/tui](https://www.npmjs.com/package/@elizaos/tui) - Terminal UI framework
- [Zustand](https://zustand-demo.pmnd.rs/) - State management
- [Claude](https://anthropic.com) - AI model via Anthropic plugin