Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 17 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,7 +76,7 @@ Plus any OpenAI-compatible endpoint: `agent --api-base-url http://localhost:8080

File ops, search, shell, git, web, LSP, MCP, notebooks, tasks, and more. Tools execute during LLM streaming for faster turns. [Full list →](docs/reference/tools.mdx)

## 12 Bundled Skills
## 18 Bundled Skills

| Skill | Purpose |
|-------|---------|
Expand All @@ -92,6 +92,12 @@ File ops, search, shell, git, web, LSP, MCP, notebooks, tasks, and more. Tools e
| `/advisor` | Architecture and dependency health analysis |
| `/bughunter` | Systematic bug search |
| `/plan` | Structured implementation planning |
| `/changelog` | Generate changelog entries from commit history |
| `/release` | Cut a versioned release |
| `/benchmark` | Run and compare benchmarks |
| `/coverage` | Measure and report test coverage |
| `/migrate` | Apply codebase-wide migrations |
| `/docs` | Generate or update documentation |

Add custom skills as markdown files in `.agent/skills/` or `~/.config/agent-code/skills/`.

Expand Down Expand Up @@ -122,15 +128,21 @@ disable_bypass_permissions = true
crates/
lib/ agent-code-lib Engine: providers, tools, query loop, memory
cli/ agent-code Binary: REPL, TUI, commands, setup wizard
eval/ agent-code-eval Evaluation harness for benchmarking the engine

packages/
agent_code_client Dart client library for talking to the engine

client/ Cross-platform Flutter desktop/web GUI (see client/README.md)
```

The engine is a reusable library. The binary is a thin wrapper.
The engine is a reusable library. The CLI binary is a thin wrapper. The Flutter client in `client/` is a separate front-end that talks to the engine via the `agent_code_client` package.

## 43 Slash Commands
## 52 Slash Commands

Session management, context control, git operations, agent coordination, configuration, diagnostics, and more. [Full list →](docs/reference/commands.mdx)

Highlights: `/release-notes`, `/summary`, `/feedback`, `/share`, `/update`, `/doctor`, `/plan`, `/model`, `/cost`, `/scroll`, `/rewind`, `/fork`
Highlights: `/release-notes`, `/summary`, `/feedback`, `/share`, `/update`, `/uninstall`, `/doctor`, `/plan`, `/model`, `/cost`, `/scroll`, `/rewind`, `/fork`

## Security

Expand All @@ -151,7 +163,7 @@ Protected directories (`.git/`, `.husky/`, `node_modules/`) are blocked from wri
git clone https://github.com/avala-ai/agent-code.git
cd agent-code
cargo build
cargo test # 225+ tests
cargo test # 650+ tests
cargo clippy # zero warnings
```

Expand Down
71 changes: 71 additions & 0 deletions client/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,72 @@
# Agent Code Client

Cross-platform Flutter front-end for [Agent Code](../README.md). Provides a desktop and web GUI that talks to the Rust engine through the `agent_code_client` Dart package in `../packages/agent_code_client`.

The Rust CLI (`crates/cli`) and this client are independent surfaces over the same engine — neither embeds the other. Use the CLI for terminal workflows; use this client when you want a graphical session view, point-and-click skills, or a browser-hosted agent.

## Platforms

| Platform | Status | Notes |
|----------|--------|-------|
| macOS | ✅ | `client/macos/` |
| Linux | ✅ | `client/linux/` |
| Web | ✅ | `client/web/` |
| Windows | ❌ | not yet — contributions welcome |

## Stack

- Flutter `>= 3.19.0`, Dart SDK `>= 3.0.0` (the repo pins **3.41.6** via `.fvmrc`)
- State management: `flutter_bloc` (`SessionBloc` in `lib/`)
- Markdown rendering: `flutter_markdown`
- Local package dependency: `agent_code_client` (`../packages/agent_code_client`) — handles transport to the engine and abstracts native vs. web execution

See `pubspec.yaml` for the full dependency list.

## Quickstart

Install [FVM](https://fvm.app/) so you pick up the pinned Flutter version automatically:

```bash
cd client
fvm install # one-time, reads .fvmrc
fvm flutter pub get
fvm flutter run # picks the connected device; pass -d macos / -d linux / -d chrome
```

If you don't use FVM, plain `flutter` works too — just make sure your local Flutter is `>= 3.19.0`.

## Tests

```bash
# Unit / widget tests
fvm flutter test

# Integration tests (in-process, runs against a real engine)
fvm flutter test integration_test/app_test.dart -d chrome
# headless:
fvm flutter test integration_test/app_test.dart -d web-server

# End-to-end browser tests (Playwright, see e2e/playwright.config.ts)
cd e2e
npm install
npx playwright test
```

## Layout

```
client/
lib/ Dart source (app shell, session BLoC, screens, widgets)
test/ Unit and widget tests
integration_test/ In-process Flutter integration tests
test_driver/ Drivers for `flutter drive`
e2e/ Playwright end-to-end browser tests (separate npm project)
macos/ linux/ web/ Per-platform Flutter scaffolding
pubspec.yaml Dart/Flutter manifest
analysis_options.yaml Lint rules (flutter_lints)
.fvmrc Pinned Flutter version (3.41.6)
```

## Contributing

The client follows the same contribution flow as the rest of the repo — see [`../CONTRIBUTING.md`](../CONTRIBUTING.md). Run `fvm flutter analyze` and `fvm flutter test` before opening a PR. CI runs the integration suite on Chrome via `chromedriver` and the Playwright e2e suite on the built web bundle.
Loading