Skip to content
 
 

Repository files navigation

KiCAD Prism

KiCAD Prism is a modern, high-performance web-based platform designed for visualizing, reviewing, and managing KiCAD projects. It bridges the gap between desktop EDA and collaborative web-native engineering by providing real-time design exploration, threaded design reviews, and automated manufacturing workflows.

KiCAD Prism Home Page


Key Features

Modern Workspace Management

Manage all your KiCAD repositories in a unified dashboard. Import projects directly from GitHub or GitLab via async jobs with real-time status tracking and detailed logs. Analysis is optimized using blobless, no-checkout clones for near-instant repository scanning. Supports both GitHub Tokens and SSH keys for private repository access.

Workspace Overview Importing Repositories

Unified dashboard with repository management and GitHub import flow.

The Visualizer Suite

A comprehensive design explorer that renders schematics and PCBs natively in the browser. Powered by ecad-viewer and KiCanvas, KiCAD Prism provides high-fidelity, interactive exploration of your electronics design files.

  • Schematic & PCB: Native rendering with cross-probing.
  • 3D Visualization: Real-time 3D model viewing with adjustable Scene Brightness and Directionality.
  • Interactive BOM: Integrated Interactive HTML BOM suite for assembly and review.

Schematic Viewer PCB Viewer

3D Viewer Interactive BOM

High-fidelity schematic exploration.

Collaborative Design Reviews

Move away from disjointed feedback. Add contextual comments directly on design elements. Comments can be replied to, resolved, and are visualised as pins in the design overlay.

Commenting Mode Comment Dialog

After a comment is added by the user, the comment is stored in a JSON file at ./comments/comments.json inside the repository and a pin is placed on the schematic at the location where the comment was added. The pin is visible in the schematic viewer and can be clicked to view the comment.
In the Comments Panel, the user can view all the comments and replies in a threaded manner. The user can also reply to a comment and the reply will be stored in the JSON file and can be viewed in the schematic viewer. Clicking on an entry in the comments panel will zoom into the schematic/PCB at the location where the comment was added.

Comments Panel & Replies Comment JSON

Pressing the Push Comments button will push the latest files in the backend to the remote repository with a commit message.

Native parsing of comments.json and display of comments in KiCAD is currently NOT available Please upvote this feature request on Gitlab for a comments panel in KiCAD!

Threaded design reviews with spatial context.

Visual Diff & Design Comparison

Track design changes across commits with native support for Schematics, PCBs, and Bill of Materials. Powered by kicad-cli, KiCAD Prism generates visual and structural diffs that highlight exactly what was added, removed, or modified.

  • Visual Comparison: Toggle between schematic sheets or PCB layers with an opacity-controlled overlay to spot subtle layout shifts.
  • Asymmetric BoM Diff: Compare component lists across commits with status-based filtering (Added/Removed/Changed) and support for custom project-level fields via .prism.json.

Schematic Visual Diff PCB Visual Diff

BoM Structural Diff

Visual and structural diffing of design and manufacturing data.

Integrated Documentation & Assets

Explore design and manufacturing outputs through a specialized assets portal. View project specifications and logs with native markdown support and embedded image handling.

Assets Portal Markdown Support Documentation Browser Native documentation browsing and asset management.

Automated Workflows

Trigger kicad-cli powered jobs directly from the browser to generate the latest PDFs, Interactive BOMs, and Ray-Traced renders.

Customizable Workflows: Users can add or modify whatever workflows they want by defining new scripts or modifying the existing ones in this project. Results are automatically committed and pushed back to the remote repository if configured.

Workflow Management


Tech Stack


Getting Started

For detailed installation and server setup, see DEPLOYMENT.md.
For the expected structure of imported KiCAD projects, see KICAD-PRJ-REPO-STRUCTURE.md.

Quick Start with Docker (Recommended)

The easiest way to run KiCAD Prism is with Docker. This works on any machine with Docker installed.

# Clone the repository
git clone https://github.com/krishna-swaroop/KiCAD-Prism.git
cd KiCAD-Prism

# Start the application (no authentication)
AUTH_ENABLED=false docker compose up -d --build

# OR: Start with Google OAuth
GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com docker compose up -d

# Access the UI at http://localhost

Persistence & Data

By default, the Docker setup creates a ./data folder in the project root:

  • ./data/projects: This is where your KiCAD projects are stored and managed.
  • Files here will persist across docker compose down or container updates.

Switching Authentication

Authentication is enabled by default in the Docker image but requires a GOOGLE_CLIENT_ID.

  • To Disable: Set AUTH_ENABLED=false in your .env.
  • To Enable: Set GOOGLE_CLIENT_ID=... and ensure AUTH_ENABLED=true (the default).

To stop: docker compose down

Setting Up Google OAuth for Docker

  1. Go to Google Cloud Console
  2. Create or select a project
  3. Create an OAuth 2.0 Client ID (Web application type)
  4. Add these Authorized JavaScript Origins:
    • http://localhost
    • http://localhost:80
    • http://127.0.0.1
  5. Copy the Client ID and pass it to Docker:
# Create a .env file for convenience
echo "GOOGLE_CLIENT_ID=your-client-id.apps.googleusercontent.com" > .env
echo "AUTH_ENABLED=true" >> .env

# Docker Compose automatically reads .env
docker compose up -d

Quick Local Dev Setup

# 1. Backend Setup
cd backend
python3 -m venv venv && source venv/bin/activate
pip install -r requirements.txt
uvicorn app.main:app --reload --port 8000

# 2. Frontend Setup (Separate Terminal)
cd frontend
npm install
npm run dev

Authentication & Access Control

KiCAD Prism supports Google Sign-in with domain-level restrictions for enterprise security.

Mode Behavior
Public Gallery No login required, projects are read-only.
Development Login shown with Dev Bypass button for local testing.
Production Full Google OAuth required with domain verification.

See DEPLOYMENT.md for configuration details.


Project Structure

KiCAD-Prism/
├── backend/            # FastAPI backend
│   ├── app/            # API & Service Layer
│   └── requirements.txt
├── frontend/           # React frontend
│   ├── src/            # Components, Hooks, Views
│   └── package.json
└── assets/             # Branding & Showcase media

Roadmap

  • High-performance Schematic & PCB Viewers
  • Collaborative Threaded Design Review
  • Automated Workflow Generation
  • Visual Git Diff (Native kicad-cli integration)
  • Fix page transition logic completely
  • Refine Workspace UI and handle non-GitHub Imports better
  • Fix ecad-viewer bugs for small projects
  • KiCAD Plugin/source code edits to overlay comments on the schematic and PCB editors
  • User Permissions & Role-Based Access
  • Real-time Collaboration (WebSockets)

Acknowledgements

Built with care for the open-source hardware community. Special thanks to the teams behind:


License

This project is licensed under the Apache-2.0 License.

Contributing

Most of the components have been vibe-coded to prove that the project is capable of being developed and is useful for teams working on KiCAD projects. I would love to see actual Typescript devs contribute to this project and make it production ready.

About

Self-Hosted Web Application for displaying and interacting with KiCAD Projects

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages