ECAssistant.Core 12.9.13

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package ECAssistant.Core --version 12.9.13
                    
NuGet\Install-Package ECAssistant.Core -Version 12.9.13
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="ECAssistant.Core" Version="12.9.13" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="ECAssistant.Core" Version="12.9.13" />
                    
Directory.Packages.props
<PackageReference Include="ECAssistant.Core" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add ECAssistant.Core --version 12.9.13
                    
#r "nuget: ECAssistant.Core, 12.9.13"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package ECAssistant.Core@12.9.13
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=ECAssistant.Core&version=12.9.13
                    
Install as a Cake Addin
#tool nuget:?package=ECAssistant.Core&version=12.9.13
                    
Install as a Cake Tool

ECAssistant.Core

The embeddable .NET agent library. Sessions, tools, memory, streaming inference — a few lines of code turn any .NET 8 app into an intelligent, tool-using agent.

NuGet License: MIT .NET

Part of ECAssistant — small, lightweight, open source. Your models, your keys, your machine.

Install

Public on nuget.org — no token, no auth:

dotnet add package ECAssistant.Core

ECAssistant in the terminal

Hello, agent

using ECAssistant.Core.Composition;
using ECAssistant.Core.Engine;
using ECAssistant.Core.Session;

// One call wires config, model resolution, tools, memory and inference
var root = new EcaCompositionRoot(userConfigDir, args);
var services = root.Build();

// Create a session and register an output listener (streamed tokens + tool events)
var sessions = new SessionManager(services.Config, services.ModelPath, workingDir, services.Logger);
var session = sessions.CreateSession("main");
session.AddListener(myListener);          // implements IOutputListener

await services.SessionBuilder.BuildAsync(session, externalTools: null);

// Run the agent — it plans, calls tools, and streams its answer
var loop = new EDecisionLoop(session.Engine, session);
await loop.ExecuteInteractiveLoop("Summarize the docs in this folder");

A complete, runnable wiring example lives in ECAssistantConsole.

What you get

Capability What it means for your app
Agent engine Multi-session orchestration, sub-agents, self-correction, task planning
11 built-in tools Shell, file I/O, code editing, git, dotnet, sub-agents, vision structure — permission-gated (approve once / always this session / deny — session-scoped, never persisted)
Custom tools Implement one interface, register it. That's the whole API.
Memory Vector memory (embeddings) + daily notes + curated long-term memory
Local or remote LLM GGUF via the bundled LLM server, or any OpenAI-compatible endpoint — identical code path
Model catalog Data-driven and pulled live from GitHub at setup time (embedded fallback) — add/update models without code changes
First-run wizard Provisions server + models interactively; nothing downloads at chat time

What makes it different

  • Vision structure extraction (EVisionStructure) — point the agent at a screenshot, UI image, or PDF page and get back a fixed, versioned JSON schema (schemaVersion 1.0): elements (headers, labels, buttons, inputs...) with approximate bounding boxes, label↔control associations, and semantic groups. Never-null design: unknown enums map to Other, missing fields get defaults, dangling refs are stripped — downstream code can consume it blind. Server-side GBNF grammar enforcement makes the shape physically guaranteed, and a deterministic validator normalizes semantics on top.
  • Grammar-forced structured decisions — the agent's act/answer/toolcall decisions are token-level constrained (GBNF), not prompt-asked. Valid tool calls with typed JSON Schema parameters, every time.
  • Interactive checkpoints (EAskUser) — the model escalates genuine ambiguity to a real choice prompt instead of guessing; falls back to autonomous mode when unattended.
  • Self-correction with loop detection — malformed outputs trigger error-feedback retries; long-range repeat loops are detected and stopped before they burn your budget.
  • Thin by design — 2.8 MB tool, server fetched on demand; local-first privacy with a remote escape hatch in the same code path.

Architecture boundary (by design)

Core talks to the ECAssistantLLM server exclusively over OpenAI-compatible HTTP. It knows nothing about model loading or runtime internals — the server is a self-contained, separately versioned product. Point llm_provider at any OpenAI-compatible endpoint and Core doesn't care what's behind it.

  • No in-process LLamaSharp — zero native model dependencies in your project
  • No embedded blobs — even the ~170 MB server is fetched on demand at wizard time, never bundled
  • No telemetry — nothing leaves your machine except the LLM calls you configured

Docs & architecture

Repo What it is
ECAssistant Landing repo & docs
ECAssistantLLM Self-contained local LLM server (also standalone)
ECAssistantTUI Reusable terminal UI library
ECAssistantConsole Reference CLI host — dotnet tool install -g ECAssistant.Console

License

MIT — © 2026 SideDevEC

Product Compatible and additional computed target framework versions.
.NET net8.0 is compatible.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated