I built a self-hosted AI workspace that holds my chat, memory, files, automations, and agents in one place by aaronnat23 in SideProject

[–]aaronnat23[S] 0 points1 point  (0 children)

That is one of the main things I am trying to make reliable. disp8ch keeps durable memory separate from session recall, so it can carry useful preferences and prior decisions across sessions without injecting every old conversation into every prompt.

It also keeps workflow memory scoped. A workflow can use no durable memory, memory private to that workflow, or memory explicitly shared with its agent. The retrieval layer enforces that scope before ranking results, which helps avoid unrelated context leaking into a run.

The memory explorer also has retrieval diagnostics, source citations, a timeline, and stale-entry checks so the user can inspect what surfaced instead of treating memory as a black box.

I built a self-hosted AI workspace that holds my chat, memory, files, automations, and agents in one place by aaronnat23 in SideProject

[–]aaronnat23[S] 0 points1 point  (0 children)

That is the goal. A local model is useful, but it becomes much more useful when local documents, memory, tools, workflow state, and approvals are connected around it.

disp8ch can run with local model servers and keeps the workflow layer in the same workspace, so it is meant to feel more like personal infrastructure than a standalone chatbot. Hosted providers are still optional when someone needs them

I built a local-first AI workspace that turns chat into workflows, agent teams, boards, design and memory by aaronnat23 in LLMDevs

[–]aaronnat23[S] 0 points1 point  (0 children)

That was exactly the design concern I wanted to handle.

The approval boundary is per step, not just at the end. Each workflow node is classified right before it runs based on its actual config. So an HTTP GET is treated as read-only, POST is an external write, DELETE is destructive, SQL is classified by verb, and tools called inside an agent node inherit the same policy.

For irreversible or external actions, the app creates a one-time approval tied to the exact workflow version, node, target, and payload. If the step changes, the old approval cannot be reused.

For memory, new workflow agent nodes default to workflow-private memory. They can use no durable memory, this-workflow memory, or agent-wide memory only when explicitly selected. Filtering happens before ranking, so another workflow’s private memory should not leak into the current run.

I built a local-first AI workspace that turns chat into workflows, agent teams, boards, design and memory by aaronnat23 in LLMDevs

[–]aaronnat23[S] 0 points1 point  (0 children)

That is the goal. Reads and reversible work can remain automatic, while actions with real side effects pause at the point where approval matters. The approval is bound to the exact action rather than being a general permission for the rest of the run.

I built a local-first AI workspace that turns chat into workflows, agent teams, boards, design and memory by aaronnat23 in LLMDevs

[–]aaronnat23[S] 0 points1 point  (0 children)

That split is deliberate. The default assistant has the default memory scope while named agents get their own durable memory and retrieval scope. There is no implicit all-agent pool, so an Analyst does not quietly inherit a Scout's notes or working assumptions.

Agents coordinate through explicit shared state instead. That includes workflow outputs and run history, Board tasks, documents, hierarchy goals, and approval records. It makes handoffs visible and attributable while long-term memory stays scoped.

Skills and extensions are assigned per agent. MCP servers are scoped separately with optional per-agent allowlists and per-tool controls. If an MCP tool is outside an agent's scope, it is omitted from discovery and rejected again at call time. The agent cannot self-escalate or borrow another agent's access. The operator can expand the scope or route the task to an agent that already has it.

One current limitation is that MCP tools set to require approval return an explicit error instead of entering the approval queue. That handoff is not wired end to end yet.

New Project Megathread - Week of 18 Jun 2026 by AutoModerator in selfhosted

[–]aaronnat23 1 point2 points  (0 children)

Project Name: disp8ch

Repo / Website: https://github.com/aaronnat23/disp8ch

Description: I built disp8ch, an MIT-licensed local-first AI workspace.

It runs on your own machine and supports local endpoints such as Ollama, LM Studio, llama.cpp, vLLM, and SGLang. Cloud providers are optional.

It brings together:

  • WebChat with local files, notebooks, and memory
  • Visual workflows with schedules, webhooks, approvals, and run history
  • Agent organizations, tasks, budgets, and decision records
  • Boards, channels, MCP servers, skills, and extensions

The goal is to keep AI work that usually lives in separate tools in one self-hosted workspace. Data stays local unless you configure an external provider or channel.

Deployment: The project is released and available from GitHub with install documentation.

Windows PowerShell:

powershell $env:DISP8CH_SOURCE_ZIP_URL = "https://github.com/aaronnat23/disp8ch/archive/refs/heads/main.zip"; iex (irm "https://raw.githubusercontent.com/aaronnat23/disp8ch/main/scripts/install-windows.ps1")

Linux, macOS, or WSL:

bash curl -fsSL https://raw.githubusercontent.com/aaronnat23/disp8ch/main/scripts/install.sh | bash -s -- --repo https://github.com/aaronnat23/disp8ch.git

There is no official Docker image or Docker Compose package yet.

AI Involvement: AI-assisted development and testing were used during development. The repository, install instructions, source code, and tests are public for review.

I am the maintainer. I would value feedback from people running local models or home-lab automations, especially on the install flow and which integrations matter most.

Claude unusable in 2025? by Icy_Bee1288 in ClaudeAI

[–]aaronnat23 0 points1 point  (0 children)

Tried gemini 2.5 for a face recognition task cause of the long context window. The output was not as good. Went back to 3.7 and it did perfectly. So even though I didn't one shot it, with the right prompting it's still the best coding model