Synaplan
Open-source AI platform for companies: self-hosted AI agents, GDPR-compliant chatbot widget, RAG knowledge base, WhatsApp and Outlook AI, MCP, multi-model routing. Docker, Kubernetes or hosted in Germ
Alacrán, the agentic business environment. Bring company knowledge, departments, and AI agents into one workspace, run workflows, and review the results.
Translation pending
BusinessTypeScript · HTMLGitHub @kwakuoseikwakyeOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Give your AI a memory of your business, a local-first control panel for running an AI-native company on your own machine. MIT.
Taken from the repository README
Loading the full README.
Read the full README ↗Give your AI a memory of your business, on your own machine.
Free and open source. No account, no cloud, no telemetry.
Install | Screenshots | Quick start | How it works | Report a problem | Changelog
Sample company, sample data.
On a Mac (about two minutes):
Download the right file for your Mac. Not sure which? Click the Apple menu, then About This Mac. If it says Chip: Apple M1 (or M2, M3, M4), take Apple Silicon. If it says Processor: Intel, take Intel.
| Your Mac | Download |
|---|---|
| Apple Silicon (M1 or newer) | Alacran-arm64.dmg |
| Intel | Alacran-x64.dmg |
Open the .dmg and drag Alacrán into Applications.
Open Terminal, paste this once, press Return, then open Alacrán:
xattr -cr "/Applications/Alacran.app"
Why: the app isn't notarized yet, so without this step macOS may say "Alacrán is damaged and can't be opened." It isn't damaged. This clears the flag your browser attached to the download. You only do it once. More detail below.
On Debian or Ubuntu:
curl -LO https://github.com/kwakuoseikwakye/alacran-releases/releases/latest/download/Alacran.deb
sudo apt install ./Alacran.deb
Then open Alacrán from your applications menu.
First launch: a short checklist makes sure you have Git and one AI tool (Claude Code is the default and installs from a button). Then you add your company and answer four questions. Quick start walks through it. Prefer to build it yourself? See Development.
Every screenshot is a made-up sample company, not real data.
Every new AI chat starts as a total stranger. It doesn't know what your business sells, who your customers are, or how you like things written, so you end up retyping the same background paragraph before it can actually be useful to you.
Alacrán fixes that. It's a small app that runs on your own computer. You describe your business once, in plain language, and it writes that down as real files in a folder you own. From then on, it hands those files to your coding agent before every task, and shows you exactly what the agent wants to change before anything gets saved.
There's no hosted service behind any of this. No account, no licence key, and
no server of ours your data could ever reach. It's a local Next.js server
that runs on 127.0.0.1, wrapped in a native desktop window — no browser tab,
no address bar.
digest (what happened this week,
from your own notes), decision (write down an RFC) and retro (a KPT
retrospective). Each spawns a headless agent scoped to a single output
directory and shows you the diff before anything is committed. More commands
sit beside them: refresh (keeps the ontology true),
check-messages (writes down what your chats said in the last 24 hours),
check-inbox (writes down the unread mail waiting in your connected Google
account), handoff (updates HANDOFF.md for whoever opens the folder next),
session-note (writes up a finished AI conversation), and orientation and
define-company, which back Get Started and the setup wizard. The company
template still ships check-notion, triage-email and triage-issue as
real commands you can run in a terminal — they're just not one-click jobs in
the app any more.refresh reads what's changed since the
ontology was last written — the notes, decisions and retros you've added,
plus your Notion if you've connected it — and proposes edits to only the
lines the evidence actually contradicts, marking anything it isn't sure
about with an inline # unconfirmed: note. Finding nothing to change is a
normal outcome, and it says so rather than inventing an edit.digest, refresh, check-inbox, handoff, orientation — can be set to
run once a day at a time you pick. By default the result waits for you as a diff, with a dot on the
sidebar so you know something's there. Tick on a schedule and that one runs end to end unattended,
landing as a real commit you read afterwards instead of before. It's off
unless you turn it on, one schedule at a time, and it's refused outright on
any job that reads text written by people outside your company — today
that's , and , which always wait for you. Turn on in Settings to see the control.| Platform | File | |
|---|---|---|
| macOS (Apple Silicon / Intel) | Choose the matching .dmg | Download |
| Debian / Ubuntu | Alacran.deb | Download |
macOS. Open the .dmg and drag Alacrán to Applications. Then, before
the first launch, run this once in Terminal:
xattr -cr "/Applications/Alacran.app"
The build is ad-hoc signed but not notarized, since that requires a
paid Apple Developer account. Without the command above, macOS quarantines
the download and refuses to open it, often with the misleading message
"Alacrán is damaged and can't be opened." The app isn't damaged; it just
isn't signed by a registered developer. xattr -cr simply clears the
quarantine flag macOS attaches to anything downloaded from the internet.
Right-click then Open is not enough on its own for an ad-hoc-signed app
on current macOS.
You only need to do this once, for this first install from the download.
Later updates go through the app's own Update & Restart button, which
downloads the new build itself — and a file the app downloads is never
quarantined, so no xattr step is needed again.
A signed and notarized pipeline would be a welcome contribution. It needs a certificate, not code. See the issue tracker if you'd like to help.
Linux.
sudo apt install ./Alacran.deb
# or: sudo dpkg -i Alacran.deb && sudo apt -f install
Then launch Alacrán from your applications menu.
Both builds bundle a standalone Next.js server. They start it locally and show it in a native window — a real Cocoa window on macOS, a GTK/WebKit one on Linux. Nothing opens in your browser except links that genuinely point at the web, which are handed to your normal browser on purpose.
See Development below.
Alacrán checks for a new release once a day and shows a banner when one's available.
.deb, installs it through a native pkexec password prompt (the same
kind of prompt GNOME Software already uses), and restarts the app for
you. If pkexec isn't installed, it shows you the exact
sudo apt install command to run instead.xattr -cr needed. That last part surprises people, so:
the quarantine flag that makes xattr -cr necessary is attached by your
browser, not by the file's origin. An update the app downloads itself is
never quarantined, so there's nothing to clear.Set ALACRAN_NO_UPDATE_CHECK=1 if you'd rather turn the check off entirely.
sudo apt remove alacran keeps your data.
sudo apt purge alacran also removes Alacrán's own registry and settings
at ~/.local/share/Alacrán. Either way, your companies' actual files
(wherever you put them, by default in ~/Alacran/) are left untouched.bash scripts/uninstall-macos.sh from a checkout, or do it
by hand: drag /Applications/Alacran.app to the Trash, and delete
~/Library/Application Support/Alacrán too if you want its registry gone.
(The app bundle is unaccented and the data folder accented — that really is
the spelling of each, not a typo in one of them.)Alacrán drives command-line tools that you install and authenticate yourself. It never stores an API key, and it never proxies a request to a model provider on your behalf.
Required
Node.js. The Mac app bundles its own, so there is
nothing to install. On Linux the .deb pulls in nodejs (18 or newer)
through apt. Building from source needs Node 20 or newer; check with
node -v.
Git. Every company is a git repository, and every write goes through
a real commit. Check with git --version.
One AI tool. Onboarding installs
Claude Code from a
button (or npm install -g @anthropic-ai/claude-code if you prefer), and it
needs a paid Claude plan to sign in with. Kiro, Kimi Code, Codex CLI and
Google Antigravity work too if you already have one; pick it per company.
You authenticate it yourself, with your own account. Alacrán just checks whether the binary exists and tells you plainly if it doesn't.
Optional
gog (brew install gogcli), a Google API CLI.
No app job calls it since v99, but it's what check-inbox and
triage-email use when you run them yourself in a terminal. Alacrán detects
it and walks you through installing it if it's missing.gh), needed only for the
optional "back up this company to a private repo" flow.Not required: an Alacrán account, a licence key, or a network connection for anything other than the AI calls themselves and a once-a-day version check you can turn off.
.git already in it) and it simply registers it.definitions/ontology/company.yaml for you. Or click
Let Alacrán write it up and your AI drafts it: you read it in
Approvals and nothing is saved until you approve it.A longer, step-by-step walkthrough (including what to do when macOS blocks
the first launch) lives in
landing/how-to-use/, which also happens
to be the source for the site's How-to-use page.
flowchart TD
You(["You, in the Alacrán window"]) -->|"open a page, click Run"| App
Clock(["A daily schedule you set<br/>(while Alacrán is running)"]) -->|"starts the same job, unattended"| App
subgraph Machine["Your machine, and only your machine"]
direction TB
App["Alacrán<br/>local Next.js server on 127.0.0.1"]
Repo[("Your company's own git repo<br/>definitions/ · docs/ · notes/ · .claude/")]
Agent{{"Your AI tool<br/>scoped to one folder"}}
Gate{"You review the diff<br/>approve it, or reject and nothing changes"}
Auto["Or, if that schedule asked for it:<br/>Alacrán commits the diff itself"]
end
Provider(("Your own AI provider account"))
Google[("Google Workspace")]
GitHubSvc[("GitHub")]
Notion[("Notion")]
App -->|"reads the repo, builds one prompt"| Repo
App -->|"spawns, scoped to one folder"| Agent
Agent <-->|"your own API call"| Provider
Agent -->|"proposes a change"| Gate
Gate -->|"approved"| Repo
Agent -.->|"only if you ticked auto-commit"| Auto
Auto -.-> Repo
App -.->|"only if you connect it"| Google
App -.->|"only if you connect it"| GitHubSvc
App -.->|"only if you connect it"| Notion
Solid arrows are what happens on every single run, whether you started it or a schedule did. Dotted arrows only happen if you turned that particular thing on — a service you connected, or a schedule you told to commit for itself. Nothing reaches Google, GitHub, or Notion unless you told it to, and nothing is committed without you unless you asked for that too. Walked through in words:
A few design decisions worth knowing, because they constrain everything else:
~/Library/Application Support/Alacrán on macOS,
$XDG_DATA_HOME on Linux). Delete the app and every company you made is
still sitting there, readable without it.git add -- <file> && git commit -- <file>, never a bare git commit that could sweep up
unrelated changes in your repo.lib/path-guard.ts, the resolved real path has to be inside a known
company's root) and membership (lib/resolve-known-skill.ts, it has to
correspond to an actual known skill file). Both, always, on every read
and every write.--allowedTools Read,Grep,Glob,Edit(<one directory>), plus
narrowly-pattern-matched Bash(...) access only where a command
genuinely needs a CLI. Blanket Write and --permission-mode acceptEdits are deliberately never used; see
v8 in the changelog for the live test that proved why.For the reasoning behind each of these, CHANGELOG.md has
a detailed, dated writeup of every feature that shipped, including the
ones that were investigated and deliberately never built, plus the
security bugs found during live testing. AGENTS.md carries the
standing conventions for contributors and AI coding agents.
git clone https://github.com/kwakuoseikwakye/alacran.git
cd alacran
npm install
npm run dev # http://localhost:3000
| Command | What it does |
|---|---|
npm run dev | Dev server with Fast Refresh |
npm test | Full vitest suite (no network, no real subprocesses) |
npm run lint | ESLint |
npx tsc --noEmit | Type check |
npm run build | Production build |
bash scripts/package-linux.sh | Build Alacran.deb (Debian/Ubuntu) |
The macOS desktop shell (an Electron wrapper around this same app) is built
and released separately; its source is not part of this repository. The
prebuilt .dmg files are on the
releases page.
Tech: Next.js 15 (App Router), React 19, TypeScript, Tailwind v4, Radix primitives, vitest.
Testing philosophy. Every function that shells out or touches the
filesystem takes an injectable ExecFn/SpawnFn with a real default, so
the suite never spawns a real process, never hits the network, and never
reads the real clock. If you add a new one, follow the same pattern:
a test that needs the real world is a test that will be flaky for
everyone else, sooner or later.
Layout:
app/ Next.js routes (/, /network, /activity, /skills, /connect)
components/ React components; components/ui/* are shadcn-style primitives
lib/ All logic. *-impl.ts holds the injectable seam, the sibling
file is the thin "use server" Server Action wrapper.
templates/ The company starter template + 7 starter packs (plain files)
scripts/ Packaging and asset-generation scripts
landing/ The static marketing site (plain HTML/CSS, no build step)
docs/ Design specs and implementation plans, one per slice
See CONTRIBUTING.md before opening a PR, particularly
the conventions around components/ui/* (don't edit them directly) and
design tokens.
There is no analytics, no telemetry, and no crash reporting anywhere in this app. Not disabled by default; simply not present. Here's the complete list of what actually leaves your machine:
Your prompts, to whichever AI a company is pointed at, whenever you press Run. That's just the agent CLI doing its job.
A version number check against the public releases page, at most once a day, so the app can tell you when an update exists. An anonymous read of a public URL, and you can dismiss or disable it.
Your files to your own private GitHub repo, only if you press Back up.
Your voice, but only while you are actually speaking to the Assistant — never in the background, and never unless you press the orb, hold space, or have turned on Wake with a double clap (off by default, and only available once the microphone is on). With that switch on, after you stop the microphone the Assistant keeps it open while its window is visible, and only measures how loud the room is to hear two claps: nothing is recorded or sent anywhere until you clap, and your computer's own microphone light stays on the whole time. Where it goes depends on which engine you pick in Settings › Voice, and the page tells you before you choose:
Unless you choose the ElevenLabs agent, spoken replies are made by your own computer's built-in voice and go nowhere. Typing your question instead sends no audio at all.
That's the whole list.
The names you give the assistant. The first time you open the Assistant page it asks four things — what to call it, what it should call you, the language you'll speak, and the language it should answer in. They are stored in one owner-only file in your own data directory, alongside the voice setting, and are editable afterwards under Settings › Assistant. They are not a separate thing that leaves your machine: they ride along inside item 1, because your name is part of the prompt the assistant is answering with. Leave either name blank if you'd rather it didn't have one. The source is right here, so verify it yourself rather than taking our word for it.
Alacrán is genuinely used every day by its author, but it's still a young project maintained by one person. Here are the rough edges, stated plainly:
xattr -cr on the
installed app before the first launch. Only that first one — in-app
updates aren't affected. See Install.git log and git revert are the undo — but if you want a human read
before anything is written, leave it off, which is how it ships.https://) servers can be
added from the app — a local, command-launched server is still
claude mcp add in a terminal.refresh proposes; it can't verify. It reads your repo (and Notion, if
connected) and edits only what it found evidence for, marking anything
uncertain inline. It cannot check any of that against reality — the diff is
there because a human still has to.Bug reports and feature requests are welcome. Start with CONTRIBUTING.md; security issues should go to SECURITY.md instead.
Alacrán is open source under the MIT licence. The source lives at github.com/kwakuoseikwakye/alacran, and prebuilt downloads are published at github.com/kwakuoseikwakye/alacran-releases. Contributions are welcome; start with CONTRIBUTING.md.
The scaffolding Alacrán copies into each company you create is licensed
separately under MIT — see templates/company-starter/LICENSE.md. That is
content you receive and own, not this app's source.
Brand icons are official Simple Icons (CC0),
extracted by scripts/generate-brand-icons.mjs. Never hand-drawn.
Bundled fonts, 3D models and vendored skill packs, with their licences, are
listed in THIRD_PARTY_NOTICES.md.
Claude, Anthropic, Notion, Beeper, Kiro, Kimi, Codex, OpenAI, Google, Antigravity, GitHub, Slack, Telegram, Canva, Figma and every other third-party name, product or logo mentioned in this repository or in the app belong to their respective owners. They are used only to say which tools Alacrán can work with. Alacrán is an independent project and is not affiliated with, endorsed by or sponsored by any of them.
refreshcheck-messagescheck-inbox.mcp.json; you approve
and sign in once inside a real session, and the token stays in Claude
Code's own store. These tools are available in Open in Terminal and
Get Started sessions, deliberately not to the scoped jobs above,
which keep their own fixed narrow permissions.