Skip to content

normancomics/silo

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Release Beta Stars Go Build Status Twitter macOS

Enchanted-Twin

Enchanted Twin Screenshot

Enchanted is a personal AI assistant focused on privacy.

The production release of the Enchanted app includes a subset of the features listed in this GitHub repository, as new functionalities undergo testing. Beta features are available in the development release.

Install

Download for macOS

Or browse all versions at GitHub releases.

Features

  • Fully local support (Ollama)
  • Support for for requests proxy in a trusted enclave
  • Support for Open source and Closed source LLMs
  • Default MCP server support (Gmail, Google Drive, Calendar, X, Slack, Screenpipe) beta
  • Add custom MCP servers (stdio, remote) beta
  • Advance memory (fact extraction, memory consolidation, embedding search)
  • Support for local embeddings (JinaAI)
  • Support for local anonymiser model pre-release
  • Data Imports (WhatsApp, ChatGPT, Telegram, Slack, Google-Gmail, X, Local Files) beta
  • Voice mode and Voice onboarding beta
  • Global omnibar
  • Scheduled tasks and periodic tasks
  • Permissions management
  • Light & Dark mode

AI privacy levels

What gives Enchanted the right to exist is a tremendous focus on privacy. Official release of Enchanted uses a combination of local models, open sources models in a Trusted Execution Environment as well as closed source models behind a privacy proxy.

  • Requests to closed source models are proxied through a router running in a trusted execution environment, ensuring that closed source model providers cannot match requests to users.
  • The embeddings model runs locally on the user's device.
  • Voice models run in a trusted execution environment.
  • Anonymiser model is running locally on the user's device. beta (Coming soon)

Main codebase for Enchanted is open source and available on GitHub. In addition the proxy codebase can be found here while the attestation proxy exposing cryptographic attestation documents generated by the Nitro Hypervisor for AWS Nitro Enclaves can be found here.

Developers on the other hand can chose one of many ways of using AI Completions and Embeddings in Enchanted depending on the privacy requirements.

Connectivity & Integrations

Data Sources beta

Enchanted supports many predefined data sources to ingest data from. These data sources can be used to build the memory for your agent about you. All imported data is stored locally on the user's device.

Data Sources Screenshot 2

MCP Servers beta

Enchanted comes with built-in support for popular services:

  • Gmail: Email management and search
  • Google Drive: File access and organization
  • Calendar: Schedule management and event creation
  • X (Twitter): Social media interaction
  • Slack: Team communication and workflow
  • Screenpipe: Screen and audio capture analysis

Users can also add custom MCP servers following stdin or remote protocol.

Data Sources Screenshot 1

Memory & Knowledge Management

Advanced Memory System

  • Fact Extraction: Automatically identify and store important information from conversations
  • Memory Consolidation: Intelligently merge and organize related memories for better recall
  • Embedding Search: Semantic search across your entire knowledge base
  • Context Preservation: Maintain conversation context across sessions

Voice Capabilities beta

Voice Mode

Natural voice conversations with your AI assistant

Voice Onboarding

Audio-guided setup process for hands-free configuration

Interface & Accessibility

Global Omnibar

Instantly open the Omnibar from any application with + + O

Global Omnibar Screenshot

Light & Dark Mode

Light & Dark Mode Screenshot

Keyboard Shortcuts

Set custom keyboard shortcuts for your most used actions.

Keyboard Shortcuts Screenshot

Demos

Agentic tool use

Tasks

Gmail MCP

Google Calendar MCP

Development

Backend stack: Go, temporal, gqlgen, sqlc, nats, weaviate Frontend stack: Electron, React, Tanstack Router, Tailwind, shadcn

Requirements

  • Go
  • pnpm
  • Node.js
  • LLM (OpenAI, OpenRouter)

Frontend

  1. Navigate to the app directory
  2. Rename .env.sample to .env and update the variables
  3. Install packages pnpm install
  4. Run the app cd app && pnpm dev

Backend

  1. Navigate to backend/golang
  2. Rename .env.sample to .env and update env variables
  3. Run the server make run

Common development commands:

  • make build - Build the binary
  • make test - Run tests
  • make lint - Auto-fix formatting and run linters
  • make deadcode - Check for unused code
  • make gqlgen - Generate GraphQL resolvers
  • make sqlc - Generate database bindings

GraphQL

Backend

On the backend side GraphQL resolvers (schema.resolvers.go) are code-generated from the schema schema.graphqls. Steps to update the schema

  1. Propose schema changes in schema.graphqls.
  2. Generate resolvers using make gqlgen in backend/golang directory.
  3. This will generate additional code in schema.resolvers.go.

Frontend

Frontend uses schema.graphqls as the source of truth to code generate queries/mutations/subscriptions using pnpm codegen.

Troubleshooting

  • If you see a database (either SQLite or Weaviate) delete local directory output for testing.

  • Application data on Mac is ~/Library/Application Support/enchanted

  • Logs data on Mac is ~/Library/Logs/enchanted

About

Freysa.ai Enchanted Twin-Silo x Normancomics.eth($NRMN)

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 65.0%
  • TypeScript 33.1%
  • Python 0.7%
  • Makefile 0.6%
  • CSS 0.3%
  • JavaScript 0.2%
  • Other 0.1%