About this project
AIForge is a native C++23 terminal AI client designed around a provider-neutral runtime kernel. It supports streaming interactions via Venice (via venice-cpp), one-shot and pipe-based AI workflows, and persistent, resumable chat sessions. The interactive Chat interface is built on TermForge for robust terminal rendering.
Key features include:
- **Provider-Neutral Kernel**: Core logic is decoupled from AI providers, enabling durable, replayable runs and projections.
- **Durable Sessions**: Session state, events, and transcripts are stored persistently using SQLite; sessions can be resumed or continued.
- **Replayable Task Planning**: Supports structured `ask_user` tool use, plan revisions, task graphs, and exact-revision decisions with conflict analysis and repository-backed backlog tracking.
- **File-Backed Personas**: System instructions loaded from `.md` or `.txt` files in XDG config; managed securely with content hashing and atomic updates.
- **Model Discovery & Selection**: Lists available models with capabilities, pricing, and context size; allows filtering and selection via CLI or interactive `/model` command.
- **Transient Character Selection**: Runtime selection of provider-specific characters without altering core configuration.
- **Local Audio Support (Linux)**: Capture and playback via ALSA (RtAudio), with secure handling and no exposure to AI models.
- **Image Handling**: Generate, view, and export images with content-addressed storage and validation (PNG, JPEG, WebP via RasterForge).
- **Bounded Execution**: Policy-gated process execution, input/output size limits, and capability restrictions to enhance safety.
- **Usage & Spend Control**: Tracks token usage and monetary cost per session; enforces configurable spend ceilings.
- **Slash Command System**: Unified, extensible command registry with help, completion, and availability checks.
- **Static Analysis & Style**: Enforced code formatting (clang-format 20) and static analysis (clang-tidy 20) with documented policies.
Builds via CMake (3.28+) with GCC 13+ or Clang 17+, and depends on TermForge, venice-cpp, and RasterForge for core functionality. SQLite provides durable session storage. Tests and linting are integrated into the build system.
The architecture emphasizes security, determinism, and auditability, with architectural decisions governed by ADRs (Architecture Decision Records) and design documents. Notable constraints include UTF-8 validation, content-addressed artifacts, and strict rejection of unsafe inputs or symlinks.
Runs in both headless (CLI) and interactive TUI modes. When launched without arguments in a terminal, it opens the interactive Chat workspace. Supports stdin pipelining for diff reviews, code analysis, and automation.
Licensed under BSD 3-clause.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.