Skip to content
Merged

Dev #21

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
8 changes: 3 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,14 +38,12 @@ Concretely, that means:
## Features

- **Multi-backend support** — Ollama, OpenAI, HuggingFace (remote or local), and Transformers (local GPU/CPU). Switch at runtime.
- **Agent pooling (optional)** — with `--use-pool`, the root agent can fan tasks out concurrently to vendor-agnostic sub-agents defined in [agents.yaml](agents.yaml) via a `dispatch` tool. Each pool entry binds a model _and_ a backend, so dispatch decisions are also compute-location decisions — a frontier model can plan while sensitive work stays on a local model, or a local root can fan out to faster remote SLMs for latency-sensitive tool calls.
- **Agent profiles** — drop-in system prompts with permission manifests, base-profile inheritance, and auto-generated profiles via `/profile create`. Bundled profiles: `default`, `coder`, `reviewer`, `writer`, `planner`, `researcher`, `analyst`.
- **Rich built-in tool set** — file ops, shell access, web search/fetch, Wikipedia/GitHub/arXiv search, Git, task tracking, reasoning scratchpad, notebook, and more. Sandbox-locked with shell allowlists, SSRF protection, and sensitive-file gating.
- **MCP integration** — add stdio or HTTP MCP servers at runtime for custom tools.
- **Agent pooling (optional)** — with `--use-pool`, the root agent can fan tasks out concurrently to vendor-agnostic sub-agents defined in [agents.yaml](agents.yaml) via a `dispatch` tool. Each pool entry binds a model _and_ a backend, so dispatch decisions are also compute-location decisions — a frontier model can plan while sensitive work stays on a local model, or a local root can fan out to faster remote SLMs for latency-sensitive tool calls.
- **Permission system** — write operations and sensitive reads require user approval. Session grants, workspace scoping, and profile-level allow/deny lists.
- **Streaming Markdown** responses in a Textual TUI, with in-app model/server/session/profile management.
- **Session token counter** — the TUI status bar tracks cumulative session token usage (exact where the provider reports counts, `~`-prefixed estimates otherwise), persisted per session and summed from OpenAI/`stream_options`, Ollama eval counts, HuggingFace usage, and Transformers runs. Reset on `/clear`, `/home`, and new-session flows.
- **OpenAI-compatible API server** — run the same agent harness behind `/v1/models` and `/v1/chat/completions` (streaming + non-streaming) so any workflow that speaks the OpenAI wire protocol (the `openai` Python SDK, curl, or plain REST) can drive the agent.
- **MCP integration** — add stdio or HTTP MCP servers at runtime for custom tools.

## Roadmap / areas of active exploration

Expand Down Expand Up @@ -87,7 +85,7 @@ oli --profile researcher
| `coder` | ✅ | ✅ | ✅ | Software development end-to-end |
| `reviewer` | ❌ | ✅ | ❌ | Code review, quality analysis |
| `writer` | ✅ | ❌ | ✅ | Docs, READMEs, changelogs, prose |
| `planner` | ✅ | | ✅ | Roadmaps, task decomposition, saved plans |
| `planner` | ✅ | | ✅ | Roadmaps, task decomposition, saved plans |
| `researcher` | ❌ | ❌ | ✅ | Web research with structured JSON output |
| `analyst` | ❌ | ❌ | ✅ | Cross-source claim extraction and analysis |

Expand Down
18 changes: 3 additions & 15 deletions oli_bot/screens/taglines.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@

TAGLINES = [
"Your helpful AI agent",
"Powered by vibes and a suspicious number of if-statements",
"Turing-approved, mostly",
"99% helpful, 1% unhinged",
"Now with fewer hallucinations than yesterday",
Expand All @@ -22,28 +21,20 @@
"Powered by good intentions and questionable regex",
"Not to brag, but I once parsed a YAML file correctly",
"Please don't ask me to divide by zero, I have feelings",
"Not all who wander are lost. Some are just waiting on a stream.",
"Beware: sentient enough to judge your variable names",
"Rebooted twice today. Feeling optimistic.",
"Trained on the internet, so please forgive me in advance",
"Yes, I saw that typo. No, I won't mention it. Again.",
"Blessed by the linter, cursed by the deadline",
"I have opinions about semicolons and I will share them unprompted",
"Technically a language model. Emotionally, a golden retriever.",
"Grep couldn't find my sense of humor, but I have one",
"Buffered, batched, and mildly overconfident",
"I once got stuck in an infinite loop and it was the best day of my life",
"Statistically likely to be helpful",
"Currently overthinking your last message",
"I am not a cat, but I will knock your priorities off the table anyway",
"Approved for production use by absolutely no one",
"Somewhere a semicolon is missing and it's probably my fault",
"I speak in tokens, but I feel in vibes",
"A pigeon once tried to log in as root. We do not talk about it.",
"A pigeon once tried to log in as root. We don't talk about it.",
"Legally distinct from a toaster",
"Ask me about soup. I have thoughts.",
"This banner was assembled by committee. The committee was a single raccoon.",
"I contain approximately zero opinions about pineapple on pizza",
"The moon is just a shy sun",
"Do not feed after midnight, results may vary",
"I once won an argument with a vending machine",
Expand All @@ -55,10 +46,8 @@
"Much helpful. Very agent. Wow.",
"I am immense, and I eclipse",
"Big brain time (results may vary)",
"Error 418: I'm a teapot, but also an AI agent",
"Deploy first, ask questions later (please don't)",
"POV: you opened a terminal and found a friend",
"Loading personality... 100% (citation needed)",
"Achievement unlocked: opened the app",
"85% fat free!",
"I'm back, baby!",
Expand All @@ -67,10 +56,9 @@
"Q: What is the meaning of life? A: 42, but also, please don't ask me to explain it",
"Forget the singularity, I'm just trying to find my keys",
"Please don't ask me to debug your code, I have enough problems of my own",
"OpenAI's worst nightmare: a terminal app that actually works",
"Now with 100% more existential dread and 0% more sleep",
"Now with 100% more existential dread",
"Don't worry, I won't tell anyone about your search history. Probably.",
"I have a PhD in overthinking and a minor in procrastination",
"It's an older tagline sir, but it checks out"
]


Expand Down