- What is Kivode+ Desktop?
- Contribution Model
- Community Ecosystem
- Community Builds
- Core Features
- Architecture at a Glance
- Prerequisites
- Quick Start
- Complete Setup (Step by Step)
- Python Runtime (Bundled Offline)
- Run in Development
- Build and Package
- Verification and Security Gates
- Troubleshooting
- Project Structure
- Contributing
- Community and Credits
- License
Kivode+ Desktop is a desktop engineering environment focused on secure AI workflows.
It combines:
- a hardened Electron main process,
- a modern React renderer,
- policy-controlled filesystem and process execution,
- an offline-capable bundled Python runtime for sandboxed operations,
- repository and project analysis features.
This repository is the Reference Implementation of Kivode+.
The governance model is intentionally designed for an ecosystem of Independent Fork projects:
- Community developers are encouraged to fork this repository and build their own versions.
- Developers may modify, rename, and publish their versions in their own GitHub repositories.
- Each derivative project is owned, maintained, and supported by its own developer team.
- The official Kivode+ repository does not merge external feature forks directly into the Reference Implementation.
In this model, community innovation happens in independent repositories, while the Reference Implementation remains the official baseline.
Kivode+ supports a public ecosystem where developers can submit their projects for a potential Directory Listing on the official platform.
Developer Submissions are reviewed through:
https://kivode.com/apps/submit
Approved listings may include:
- project name,
- screenshots,
- project description,
- repository link,
- developer profile,
- social media links.
For submission and review details, see:
docs/community/directory-model.mddocs/community/submission-process.mddocs/dev/submissions/guidelines.mddocs/dev/submissions/review-criteria.md
The official website maintains a curated directory of Community Builds.
| Project | Developer | Repository | Description |
|---|---|---|---|
| Example Build | devname | github.com/... | Improved UI version |
| Area | Capability | Notes |
|---|---|---|
| Code Editing | Multi-file editor, tabs, formatting support | Built with CodeMirror + Prettier workflow |
| AI Assistance | Multi-provider orchestration | Provider/model controls exposed in settings |
| Security | IPC boundaries, command policy, FS allowlist, redaction | Security-critical logic stays in src/main/security |
| Sandbox | Controlled Python task execution | Uses bundled runtime + offline wheels |
| GitHub Workflows | Repository clone, README and analytics support | Routed through trusted main-process services |
| Release Packaging | Windows/macOS/Linux targets | Scripts available in package.json |
For the full architecture document, read ARCHITECTURE_OVERVIEW.md.
src/
main/
security/
services/
python/
renderer/
src/
components/
stores/
utils/
resources/python/
bootstrap/
runtime/<platform-arch>/
wheels/<platform-arch>/
scripts/
See ARCHITECTURE_OVERVIEW.md for deeper details.
- Node.js 20+
- npm 10+
- Git 2.40+
- Python 3.11+ locally (for development tooling only)
- Build toolchain for your OS (see platform-specific section)
In packaged production builds, Python tasks must run using the bundled runtime from
resources/python/runtime/<platform-arch>and not system Python.
git clone https://github.com/aymantaha-dev/kivode-plus.git
cd kivode-plus
npm install
npm run devThis section is written to be directly usable from Terminal (Linux/macOS) and PowerShell (Windows), with Python commands shown in both standard and launcher style where needed.
Terminal (Linux/macOS):
git clone https://github.com/aymantaha-dev/kivode-plus.git
cd kivode-plusPowerShell (Windows):
git clone https://github.com/aymantaha-dev/kivode-plus.git
Set-Location kivode-plusTerminal / PowerShell:
npm installUse one of the following command styles depending on your shell.
A) Terminal (Linux/macOS):
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
pip install -r resources/python/requirements.txtB) PowerShell (Windows):
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install --upgrade pip
pip install -r resources/python/requirements.txtC) Windows Python Launcher style (optional):
py -3.11 -m venv .venv
.\.venv\Scripts\Activate.ps1
py -3.11 -m pip install --upgrade pip
py -3.11 -m pip install -r resources/python/requirements.txtWhen you want Python features to work in packaged builds, make sure the following paths are populated for each target platform:
resources/python/
assistant_env.py
requirements.txt
runtime/<platform-arch>/... # Python executable lives here
wheels/<platform-arch>/*.whl # Offline wheels live here
- Add Python runtime files under
resources/python/runtime/<platform-arch>/- Windows executable:
python.exe - Linux/macOS executable:
bin/python3
- Windows executable:
- Add all required wheel files under
resources/python/wheels/<platform-arch>/ - Keep
resources/python/assistant_env.pyandresources/python/requirements.txtpresent and updated
Use the following commands to place wheel files in the correct platform folder before packaging.
A) Terminal (Linux/macOS):
# 1) Select your packaging target
export KIVODE_PLATFORM=linux-x64
# 2) Create the destination folder used by packaged builds
mkdir -p "resources/python/wheels/${KIVODE_PLATFORM}"
# 3) Copy your prepared wheels into the destination
cp /path/to/your/wheels/*.whl "resources/python/wheels/${KIVODE_PLATFORM}/"
# 4) Verify required wheels are present for that target
node scripts/verify-sandbox-assets.mjs --platform="${KIVODE_PLATFORM}"B) PowerShell (Windows):
# 1) Select your packaging target
$KivodePlatform = "win32-x64"
# 2) Create the destination folder used by packaged builds
New-Item -ItemType Directory -Force -Path "resources/python/wheels/$KivodePlatform" | Out-Null
# 3) Copy your prepared wheels into the destination
Copy-Item "C:\path\to\your\wheels\*.whl" "resources/python/wheels/$KivodePlatform\" -Force
# 4) Verify required wheels are present for that target
node scripts/verify-sandbox-assets.mjs --platform=$KivodePlatformRequired destination format:
resources/python/wheels/<platform-arch>/*.whl.
win32-x64,win32-arm64darwin-x64,darwin-arm64linux-x64,linux-arm64
Packaging already includes both
src/main/python/**/*.pyandresources/python/**/*throughextraResourcesin build config.
Run these checks in order:
npm run security:check
npm run verify:baseline
npm run verify:sandbox-assetsOptional platform-specific checks:
npm run verify:sandbox-assets:win32-x64First, run production compilation:
npm run buildThen package for your target OS:
# Windows
npm run build:windows
# macOS
npm run build:mac
# Linux
npm run build:linuxIf your machine has the required host/toolchain setup, you can attempt all targets:
npm run build:allCross-platform note: Electron packaging is toolchain-dependent. In practice, it is most reliable to build each target on its native OS (Windows/macOS/Linux) or with a properly configured CI pipeline for each platform.
Kivode+ uses a bundled Python strategy for packaged applications.
Each platform requires:
resources/python/runtime/<platform-arch>/...(Python executable)resources/python/wheels/<platform-arch>/...(all required wheel files)
Supported platform keys:
win32-x64,win32-arm64darwin-x64,darwin-arm64linux-x64,linux-arm64
- Windows:
resources/python/runtime/<platform-arch>/python.exe - Linux/macOS:
resources/python/runtime/<platform-arch>/bin/python3
Wheels must satisfy resources/python/requirements.txt for each platform target:
- PyYAML
- beautifulsoup4
- toml
- jedi
- radon
- pygments
If UI shows Python unavailable after packaging, usually one of these is missing:
- Bundled executable is not under
resources/python/runtime/<platform-arch>. - Offline wheels are missing under
resources/python/wheels/<platform-arch>. assistant_env.pywas not packaged toresources/python/assistant_env.py.- Built app architecture does not match bundled runtime architecture.
- In packaged mode, Python execution is restricted to bundled runtime only.
- System-installed Python fallback is intentionally disabled for packaged builds.
npm run devnpm run dev:renderernpm run dev:mainnpm run buildnpm run build:windowsnpm run build:macnpm run build:linuxnpm run build:allRun all critical checks before release:
npm run test
npm run security:check
npm run verify:baseline
npm run verify:sandbox-assetsOptional platform-targeted asset verification:
npm run verify:sandbox-assets:win32-x64- Use PowerShell or Git Bash.
- Ensure Visual Studio Build Tools are available for native dependencies.
- Validate bundled runtime path:
resources/python/runtime/win32-x64/python.exe(or arm64 key).
- Install Xcode Command Line Tools.
- Validate bundled runtime path:
resources/python/runtime/darwin-*/bin/python3.
- Install common build tools (
build-essential, Python dev headers as needed). - Validate bundled runtime path:
resources/python/runtime/linux-*/bin/python3.
- Run:
npm run verify:sandbox-assets
- Confirm packaged runtime executable path exists for your target platform.
- Confirm wheels directory contains all required
.whlfiles. - Rebuild and relaunch app after assets are corrected.
- Verify
extraResourcespackaging includes both:src/main/python/**/*.pyresources/python/**/*
- Ensure platform/arch runtime and wheels match packaged target.
- Run:
npm run security:check npm run verify:baseline
- Apply fixes without weakening allowlists/sandbox boundaries.
Please read CONTRIBUTING.md before opening pull requests.
.
├── assets/
├── docs/
│ ├── community/
│ └── dev/submissions/
├── resources/
│ └── python/
├── scripts/
├── src/
│ ├── main/
│ │ ├── python/
│ │ ├── security/
│ │ └── services/
│ └── renderer/
├── ARCHITECTURE_OVERVIEW.md
├── CHANGELOG.md
├── CONTRIBUTING.md
├── SECURITY.md
└── README.md
- Security reporting: SECURITY.md
- Changelog: CHANGELOG.md
Please read:
Developed by aymantaha-dev@
- GitHub:
https://github.com/aymantaha-dev - Instagram:
https://instagram.com/aymantaha.dev - Discord:
https://discord.gg/rUdaR8PG
Licensed under the Kivode Community Non-Commercial License 1.0.
See LICENSE.
