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
4 changes: 2 additions & 2 deletions .github/workflows/autofix.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Bun
uses: oven-sh/setup-bun@3d267786b128fe76c2f16a390aa2448b815359f3 # v2.1.2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: package.json

- name: Setup Biome
uses: biomejs/setup-biome@29711cbb52afee00eb13aeb30636592f9edc0088 # v2.7.0
uses: biomejs/setup-biome@4c91541eaada48f67d7dbd7833600ce162b68f51 # v2.7.1
with:
version: latest

Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Bun
uses: oven-sh/setup-bun@3d267786b128fe76c2f16a390aa2448b815359f3 # v2.1.2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: package.json

Expand All @@ -36,7 +36,7 @@ jobs:
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Bun
uses: oven-sh/setup-bun@3d267786b128fe76c2f16a390aa2448b815359f3 # v2.1.2
uses: oven-sh/setup-bun@0c5077e51419868618aeaa5fe8019c62421857d6 # v2.2.0
with:
bun-version-file: package.json

Expand Down
29 changes: 29 additions & 0 deletions .opencode/opencode.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
{
"$schema": "https://opencode.ai/config.json",
"plugin": [
"@franlol/opencode-md-table-formatter@latest",
"opencode-helicone-session",
"opencode-pty",
"opencode-vibeguard",
"opencode-wakatime"
],
"permission": {
"skill": {
"*": "allow",
"pr-review": "allow",
"internal-*": "deny",
"experimental-*": "ask"
}
},
"mcp": {
"browser-mcp": {
"type": "local",
"command": ["bunx", "-y", "@browsermcp/mcp@latest"]
},
"sqlite-mcp": {
"type": "local",
"command": ["bunx", "-y", "sqlite-mcp-server"]
}
},
"lsp": {}
}
2 changes: 1 addition & 1 deletion .opencode/package.json
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"dependencies": {
"@opencode-ai/plugin": "1.2.27"
"@opencode-ai/plugin": "1.3.6"
}
}
20 changes: 0 additions & 20 deletions .opencode/skills/git-release/SKILL.md

This file was deleted.

86 changes: 65 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,52 +1,96 @@
# try-opentui
# Agent TUI

## Project Overview
A Bun-based TypeScript TUI (Terminal User Interface) application using `@opentui/core` for rendering.

This is a Bun-based TypeScript TUI (Terminal User Interface) application using `@opentui/core` for rendering.
## Features

## Development & CLI Commands Guide
- **Chat Interface**: Interactive chat with AI assistant
- **Command Palette**: Press `Ctrl+K` to access commands
- **Theme Switching**: Multiple themes (default, nord, dracula, nightowl)
- **Model Switching**: Support for multiple LLM models
- **Keyboard Shortcuts**: Efficient keyboard-driven navigation

### Installation & Running
## Commands

| Command | Description |
| ------- | ----------- |
| `/theme <name>` | Switch theme (default, nord, dracula, nightowl) |
| `/models <name>` | Switch LLM model |
| `/exit` | Exit application |
| `/help` | Show available commands |

## Keyboard Shortcuts

| Shortcut | Action |
| -------- | ------ |
| `Tab` | Toggle Plan/Build mode |
| `Ctrl+K` | Open command palette |
| `Ctrl+P` | Quit application |
| `Enter` | Send message |

## Installation & Running

```bash
bun install # Install dependencies
bun dev # Run in development mode with file watching
bun start # Run the application
```

### Linting & Formatting
## Linting & Formatting

```bash
bun lint # Run oxlint to check code quality
bun lint:fix # Run oxlint with auto-fix
bun format # Run oxfmt to format code
```

### Type Checking & Pre-commit
## Type Checking & Pre-commit

```bash
bun typecheck # Run TypeScript type checking (tsgo)
bun run actions:up # Run actions-up (updates?)
```

**Note:** There is no test framework configured in this project yet.
## Testing

```bash
bun test # Run tests
```

## Environment Variables

---
| Variable | Default | Description |
| -------- | ------- | ----------- |
| `LLM_BASE_URL` | http://localhost:11434 | LLM API endpoint |
| `LLM_API_KEY` | - | API key for authentication |
| `LLM_MODEL` | llama3 | Default model to use |

## File Organization

```bash
├── main.ts # Entry point
├── main.ts # Entry point
├── src/
│ ├── config.ts # Configuration management
│ ├── container.ts # Main UI container component
│ ├── renderer.ts # Renderer lifecycle management
│ ├── theme.ts # Theme loading and management
│ ├── utils.ts # Utility functions
│ └── figures.ts # Figure/shape utilities
├── docs/ # Documentation
├── themes/ # Theme JSON files
├── .oxlintrc.json # Linting rules
├── .oxfmtrc.json # Formatting rules
└── tsconfig.json # TypeScript configuration
│ ├── cli.ts # CLI argument parsing
│ ├── config.ts # Configuration management
│ ├── container.ts # Main UI container component
│ ├── renderer.ts # Renderer lifecycle management
│ ├── theme.ts # Theme loading and management
│ ├── utils.ts # Utility functions
│ ├── figures.ts # Figure/shape utilities
│ ├── errors.ts # Error types
│ ├── types.ts # TypeScript type definitions
│ ├── store.ts # State management
│ ├── message-list.ts # Chat message display
│ ├── typing-indicator.ts # Thinking indicator
│ ├── command-palette.ts # Command palette UI
│ ├── status-bar.ts # Bottom status bar
│ ├── llm-types.ts # LLM client types
│ ├── llm-client.ts # LLM HTTP client
│ └── connection-manager.ts # Connection management
├── test/ # Test files
├── docs/ # Documentation
├── themes/ # Theme JSON files
├── .oxlintrc.json # Linting rules
├── .oxfmtrc.json # Formatting rules
└── tsconfig.json # TypeScript configuration
```
Loading
Loading