Open-source project
existence-master/Sentient avatar
existence-master/Sentient

Sentient: a personal assistant whose self-host path is ten start scripts, two vector stores and a WhatsApp bridge

A personal AI assistant for everyone

692 stars103 forksPythonNOASSERTION

At a glance

What is it?
A Python-first repository with a Next.js client at version 2.0.0, described three different ways in three different places. The interesting file is the root listing: five PowerShell starters, one shell starter, and configuration for Redis, WAHA, Chroma, pgvector and a LiteLLM gateway.
Who is it for?
Judge this by the root listing rather than the pitch. The README describes a personal assistant, but self-hosting it means standing up a client server, MCP servers, workers, Redis, a WAHA instance, and two vector stores at once, with a LiteLLM gateway in front of whichever model you point it at.
Can I use it commercially?
Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
Is it still maintained?
Yes. The repository last received commits 23 days ago.
What is it written in?
Mainly Python, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 5, 2026, and from our analysis. They are not legal advice.

Editorial analysis

Self-hosting is ten start scripts, five of them Windows-only

The entire operational surface of this project is visible in the top-level listing, and it is a list of launchers rather than a package. There is `start_all_services.ps1` and `start_all_services.sh` for the full set, then `start_client_server.ps1`, `start_mcp_servers.ps1`, `start_workers.ps1` and `start_redis.ps1`. Four of those six are PowerShell, and only one of the six is a shell script. Add the configuration files and the stack becomes clearer: `start_waha.yaml`, `start_chroma.yaml`, `start_litellm.yaml` and `start_pgvector.yaml`. So a self-hosted instance means a client server, MCP servers, workers, Redis, a WAHA instance, Chroma and pgvector, with LiteLLM sitting in front of the model provider. Notably there is no Dockerfile or compose file in the root listing, so the documented path is a set of scripts you run yourself rather than a stack you describe declaratively.

Two vector stores and a WhatsApp bridge sit underneath the word assistant

Three configuration files decide what this system talks to. WAHA is the WhatsApp side, which is why the assistant is described as a command centre for your digital life rather than a chat window. Chroma and pgvector are both present, which means two vector stores in the same stack, and nothing in the visible text says which one holds the memories the product claims to learn or whether they are alternatives. LiteLLM is the gateway, which is the piece that makes the model provider swappable. The memory claim is stated plainly in the feature list: Sentient learns memories about you and uses them to personalise actions and responses. Where those memories live, whether they are local by default or require a remote store, and whether the two databases are populated from the same source are all questions the README leaves open.

The only JavaScript package in the repository is the client, and it is version 2.0.0

The root package.json is private, named client, at version 2.0.0, with the description a completely private, decentralized and interactive AI companion. It is a Next.js app on version 14 with React 18, plus react-hot-toast for notifications, tailwind-merge and typewriter-effect, and a standard toolchain of eslint, prettier, postcss and tailwind in development dependencies. Two observations follow. First, that 2.0.0 is a frontend version, while the repository's primary language is recorded as Python, so no project-wide version is declared anywhere in the visible material. Second, the description in that file and the description on the repository are different products in emphasis: one says assistant for everyone, the other says companion, and the word decentralized sits directly above a dependency list that requires five running services.

The README says GNU AGPL, the repository record asserts no license at all

The license section states that the project is distributed under the GNU AGPL License and links to LICENSE.txt for details, and LICENSE.txt is present in the root listing. The repository record itself, however, carries no asserted license. That is a mismatch a consumer has to resolve by reading the file the README points at, and it is the kind of detail that matters more than usual here: AGPL is the license with network-use obligations, so if you intend to run this somewhere other than your own machine, or to modify it and put it back, that is a question to answer before you deploy rather than after. The last push to the repository is dated 2026-09-12, the default branch is master, and there are no GitHub releases, so nothing about the licensing state is versioned either.

Three descriptions of the product, and only one of them is checkable

The project is described in three places and the three do not match. The repository record says A personal AI assistant for everyone. The root package.json says a completely private, decentralized and interactive AI companion. The README calls it an advanced personal assistant and the first step towards fully autonomous agents, with the stated goal of giving everyone personal super-intelligence. The README also carries the framing claim that it is designed to be a proactive partner that manages your digital life without you having to type long, complex prompts. Of these, only the first is a description you can test against the code. Decentralized is the one to be careful with, because the root listing shows stateful infrastructure that has to be somewhere.

Three documentation surfaces, one of them suffixed with a 2

Links out of the README go to at least five places, and the documentation is not one of them. Access is via a hosted website, the product page is a different domain, the documentation is a GitBook space whose name carries a 2, the manifesto is a Google Doc with an in-document anchor pointing at a heading, and one link in the badge row is labelled as the project's advertisement and goes to a video. The GitBook naming is the one to note: a docs host called with a version suffix usually means an earlier documentation set still exists somewhere, and readers arriving at the current page have no way to tell which set is authoritative. The self-hosting instructions are a single link out to that docs space rather than anything in the repository, so the operational detail lives off-site while the launch scripts live in the tree.

CLA.md sits at the root and nothing in the README mentions it

The root listing contains CLA.md next to CODE_OF_CONDUCT.md, CONTRIBUTING.md and LICENSE.txt. The contributing guide is linked from the README and the code of conduct is linked from the README, so both of those files have a documented purpose. CLA.md has neither. The name is the conventional abbreviation for a contributor licence agreement, which is a different instrument from a code of conduct and a different one again from the project licence, and nothing visible explains what it asks contributors to sign or whether signing it changes the terms under which the code is used. If you are contributing rather than deploying, that is the file to read first, and the project will not tell you it exists.

The feature list is four centred paragraphs, and one of them names four kinds of task

The Current Features section is not a list. It is a run of centred HTML paragraphs, and the substance is small: text chat, voice chat, background tasks managed from a Tasks page, memories about the user, and connections to 20+ apps. The Tasks line carries the most specific information in the whole document, since it names four task kinds, recurring, triggered, scheduled and swarm, which implies the system distinguishes between a job that repeats on a calendar, one fired by an event, one placed at a time, and a group of them running together. The notification mechanism is email and calendar reading, used to suggest schedules and remind you of events. Everything else in the document is positioning, and the positioning is what a reader meets first.

Editorial conclusion

Judge this by the root listing rather than the pitch. The README describes a personal assistant, but self-hosting it means standing up a client server, MCP servers, workers, Redis, a WAHA instance, and two vector stores at once, with a LiteLLM gateway in front of whichever model you point it at. If you want a personal assistant on your own machine and you already run containers and a message bridge, that is workable. If you want something you can start with one command, the repository does not currently offer it: there is no compose file or Dockerfile at the root, and five of the ten starters are PowerShell, so only one script covers the full set on macOS or Linux. Before you build on it, settle three things. Licensing is unresolved in public: the README says GNU AGPL and points at LICENSE.txt, while the repository record asserts nothing, and AGPL obligations matter if you intend to serve it to anyone else. The description calling it decentralized does not survive contact with the dependency list. And the three parallel descriptions of what it is mean you should read the source before you commit to a mental model.

Frequently asked questions

What has to run to self-host Sentient?

The root listing is the answer: start_all_services plus start_client_server, start_mcp_servers, start_workers and start_redis, with yaml configuration for WAHA, Chroma, LiteLLM and pgvector. That means a client server, MCP servers, workers, Redis, a WAHA instance and two vector stores, with LiteLLM in front of the model.

How is Sentient licensed?

The README states it is distributed under the GNU AGPL License and points to LICENSE.txt in the repository root, and that file is present in the listing. The repository record itself asserts no license, so the two sources do not agree.

What does Sentient's feature list actually include?

Text chat, voice chat, background tasks managed from a Tasks page in four kinds described as recurring, triggered, scheduled and swarm, memories about the user used to personalise actions and responses, and connections to 20+ apps. Email and calendar are read to suggest schedules and send reminders.

What is in Sentient's package.json?

A private package named client at version 2.0.0, described as a completely private, decentralized and interactive AI companion. It is a Next.js app on version 14 with React 18, react-hot-toast, tailwind-merge and typewriter-effect, plus eslint, prettier, postcss and tailwind as development dependencies.

How do I get started with Sentient?

The README contains no command sequence. It points to a hosted website for access, and for self-hosting it links a documentation page about running Sentient from source. The operational commands live in the start scripts at the repository root instead of in the README.

Official sources

  1. existence-master/Sentient on GitHub
  2. Issues
  3. Project website
  4. README
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/existence-master-sentient.svg)](https://hysenlabs.com/projects/existence-master-sentient)