loveuer a431d1ec95 v0.0.1: agentu mvp
Add OpenAI-compatible providers, TUI, slash commands, and model switching.
Add local file tools plus optional yolo shell execution.
Document config, usage, and development workflow.
2026-06-22 22:40:38 +08:00
2026-06-22 22:40:38 +08:00
2026-06-22 22:40:38 +08:00
2026-06-22 22:40:38 +08:00
2026-06-22 22:40:38 +08:00
2026-06-22 22:40:38 +08:00
2026-06-22 22:40:38 +08:00
2026-06-22 22:40:38 +08:00

agentu

agentu is a small local agent written in Go. The current MVP is a terminal chat UI with OpenAI-compatible providers, streaming responses, session-level model/provider switching, and local tools.

Current MVP

  • TUI-first chat experience with a light theme by default.
  • OpenAI-compatible /v1/chat/completions provider support.
  • Multiple providers from ~/.agentu/config.yaml.
  • Session-only provider, model, and thinking-level switching.
  • Read-only project tools enabled by default.
  • --yolo mode for file writes and shell execution.

Quick Start

mkdir -p ~/.agentu
cp agentu.example.yaml ~/.agentu/config.yaml
export AGENTU_API_KEY='your-api-key'
go run ./cmd/agentu

Use --yolo only when you want agentu to write files or run shell commands:

go run ./cmd/agentu --yolo

Config

By default, agentu reads:

~/.agentu/config.yaml

Use --config <path> to load another file.

providers:
  loveuer:
    base_url: https://ai.loveuer.com
    api_key: ${AGENTU_API_KEY}
    model: deepseek-v4-flash
    models:
      - deepseek-v4-flash
    thinking: none
    thinking_param: thinking

agent:
  system_prompt: |
    You are agentu, a concise local agent. Answer simple conversation directly.
    Use tools only when the user's request needs local project context or local
    command execution.
  working_dir: .
  tool_timeout: 30s

Provider names are the keys under providers. At startup, agentu selects the first provider by name. Use /model provider <name> to switch providers for the current session.

models is optional. If present, /model model <name> is restricted to that list. If omitted, any model name is accepted for that provider.

thinking is optional. Supported values are:

none, middle, high, xhigh, max

When configured or changed with /model thinking ..., the value is sent as a top-level OpenAI-compatible request field. thinking_param controls that field name and defaults to thinking.

CLI Flags

go run ./cmd/agentu [flags]
  • --config <path> loads a YAML config file. Default: ~/.agentu/config.yaml.
  • --theme light|dark selects the TUI theme. Default: light.
  • --plain uses the simple line-based REPL instead of the TUI.
  • --yolo enables automatic file writes and shell execution.

TUI Controls

  • enter sends the message.
  • ctrl+j or alt+enter inserts a newline.
  • The input starts at one line and grows up to six lines.
  • page up / page down scrolls the transcript.
  • esc cancels a running response.
  • Type / to show available commands.

Slash commands:

  • /clear resets conversation history.
  • /model shows current provider, model, thinking, and switch usage.
  • /model provider <name> switches provider for the current session.
  • /model model <name> or /model <name> switches model for the current session.
  • /model thinking <none|middle|high|xhigh|max> changes thinking for the current session.
  • /exit or /quit exits.

Local Tools

Read-only tools are available by default:

  • file_read
  • file_list
  • file_search

--yolo additionally enables:

  • file_write
  • shell_run

Use --yolo for prompts that ask agentu to run or inspect local commands, for example:

请帮我运行 `go test ./...` 并总结结果

Development

Run the verification suite:

go test ./...
go vet ./...
go build ./cmd/agentu

Local config and build outputs are intentionally ignored by git.

Notes

  • Provider/model/thinking changes are session-only; agentu does not write them back to ~/.agentu/config.yaml.
  • The config schema is intentionally strict during MVP development. Deprecated fields such as provider or active_provider are rejected.
S
Description
No description provided
Readme 372 KiB
Languages
Go 100%