Content
<p align="center">
<img src="https://raw.githubusercontent.com/npc-worldwide/npc-studio/main/levi.PNG" alt="npc studio logo with Levi the dog howling at the moon" width="400" height="400">
</p>
# NPC Studio
NPC Studio is an AI-powered IDE that lets users have conversations with LLMs and Agents, edit files, explore data, execute code, and much more.
**Download executables for Linux, MacOS, and Windows at [enpisi.com/npc-studio](https://enpisi.com/npc-studio)**
## Demo Video
<a href="https://www.youtube.com/watch?v=rXkc2CrLNb4" target="_blank">
<img src="https://img.youtube.com/vi/rXkc2CrLNb4/0.jpg" alt="Watch the video" />
</a>
---
## Table of Contents
- [Features](#features)
- [AI Chat & Conversations](#ai-chat--conversations)
- [File Editing](#file-editing)
- [Document Viewers](#document-viewers)
- [Web Browsing](#web-browsing)
- [Image Tools (Vixynt)](#image-tools-vixynt)
- [Data Dashboard](#data-dashboard)
- [Agent Management](#agent-management)
- [Themes](#themes)
- [Installation](#installation)
- [Getting Started with Development](#getting-started-with-development)
- [License](#license)
---
## Features
### AI Chat & Conversations
Organize conversations by project path and chat with multiple AI models.

**Thinking Traces**: See the agent's reasoning process:

**Aggregate Conversations**: Select and combine multiple conversations:


**Include Attachments**: Attach files to your conversations:

**Model Selection**: Choose from available models based on your environment:

**Agentic Tool use**: Enable agents to use tools from MCP Servers or your local Jinxs during conversations:

---
### File Editing
Edit code and text files with syntax highlighting.

**AI-Powered Analysis**: Analyze files with AI assistance:

**Tiled Layout**: Edit files while chatting with AI:

---
### Document Viewers
**DOCX & XLSX Support**: Edit Word documents and Excel spreadsheets with full functionality:

**PDF Analysis**: Highlight and analyze PDF documents:

---
### Web Browsing
Browse the web with AI assistance at your fingertips.

**Tiled Browsing**: Browse while viewing PDFs or chatting:

---
### Vixynt: your visual assistant
**Photo Editor**: Browse photos

**AI Image generation with references**:

**DarkRoom**: Simple photo cropping, editing, and styling.

---
### Data Dashboard
Composable widgets for analytics, querying, and visualization.

**Database Schema Viewer**:

**SQL Querying**: Run queries with natural language to SQL:

**Memory Management**: Edit and manage agent memories:

**Knowledge Graph Explorer**:

---
### Agent Management
**Create and Edit NPC Personas**: edit the primary directive, model, provider, and jinxs for your persona.

**Jinx Management**: Create and manage Jinxs for agents:

**Jinx Execution**: Run jinx workflows:

**SQL Jinx**:

**Context Editor**: Manage global and project context:

---
## Themes
**Light Mode**: Full light mode support with pink accents:

**Sidebar Controls**: Collapse sidebar, delete conversations, access menus:

---
## Settings
**Global Settings**: Configure default models and providers:

**Project Settings**: Set environment variables per project:

---
## Installation
Executables are available for Linux, MacOS, and Windows at [enpisi.com/npc-studio](https://enpisi.com/npc-studio).
### Requirements
- Node.js 16 or higher
- Python 3.8 or higher (for the backend)
- Ollama (optional, for local models)
> **Note**: NPC Studio currently includes a way to install ollama and to manage ollama models, but this feature has had issues on different operating systems, so if you run into it, please report here and we can do our best to fix it.
---
## Getting Started with Development
NPC Studio is an Electron-based frontend with a Python Flask backend.
### Prerequisites
- [npcpy](https://github.com/npc-worldwide/npcpy)
- [npcsh](https://github.com/npc-worldwide/npcsh)
- Node.js + npm
- Ollama (if using local models)
### Setup
Users can set up NPC studio manually:
```bash
git clone https://github.com/npc-worldwide/npc-studio.git
cd npc-studio
npm install
```
or you can use `npcsh` to set it up, which will install the git folder in `~/.npcsh/npc_studio`
```
npcsh> /npc-studio
```
### Running in Development
Start the Flask backend:
```bash
python npc_studio_serve.py
```
Start the Electron frontend:
```bash
npm run dev
```
Or start both together:
```bash
npm start
```
## License
NPC Studio is licensed under AGPLv3 with additional terms prohibiting third-party SaaS services and packaged resale. See the [LICENSE](LICENSE) file for details.