Jacpacks are self-contained project templates that bundle everything you need to scaffold a full Jac application. Each .jacpack file is a portable archive containing source code, configuration, and setup hooks -- use them with jac create to spin up a working project in seconds.
This directory contains a collection of ready-to-use jacpacks showcasing different capabilities of the Jac ecosystem.
Before using any jacpack, make sure you have the following installed:
- Python 3.12+
- Node.js 18+ with npm (for jacpacks that include a frontend)
- Jac -- install the full ecosystem bundle:
pip install jaseciThis installs jaclang along with all official plugins (byllm, jac-client, jac-scale, jac-super).
Or
pip install jaclang byllm jac-scale jac-clientVerify your installation:
jac versionInstall the Jac extension for VS Code (also works in Cursor) for syntax highlighting, diagnostics, and language server support.
Every jacpack follows the same three-step workflow -- no cloning required:
# 1. Create a new project directly from GitHub
jac create my-app --use https://raw.githubusercontent.com/jaseci-labs/jacpacks/refs/heads/main/<folder>/<name>.jacpack
# 2. Install dependencies
cd my-app && jac install
# 3. Start the application
jac start main.jacThe server runs at http://localhost:8000 by default.
A voice-enabled personal AI assistant with calendar, email, and GitHub integration.
jac create my-algo --use https://raw.githubusercontent.com/jaseci-labs/jacpacks/refs/heads/main/Algo/Algo.jacpack
cd my-algo && jac install
jac start main.jacRequired environment variables:
export OPENAI_API_KEY=your_openai_api_keyFeatures:
- Voice interface powered by OpenAI Realtime API
- Calendar and email management
- GitHub issue tracking integration
- Real-time task graph visualization
- Complete authentication system (register, login, protected routes)
A full-stack authenticated todo list with hierarchical sub-todos and priority levels. A good starting point for learning Jac's fullstack capabilities.
jac create my-todo-app --use https://raw.githubusercontent.com/jaseci-labs/jacpacks/refs/heads/main/multi-user-todo-app/multi-user-todo-app.jacpack
cd my-todo-app && jac install
jac start main.jacFeatures:
- User authentication (register, login, token-based sessions)
- Todo CRUD with three priority levels (high, medium, low)
- Hierarchical sub-todos with nested display
- CSS-driven dark theme UI with no inline styles
- Declaration/implementation separation pattern (
frontend.cl.jac+frontend.impl.jac)
Extends the todo app with an AI-powered meal planner that generates shopping lists with costs and nutritional indicators using Claude.
jac create my-meals-app --use https://raw.githubusercontent.com/jaseci-labs/jacpacks/refs/heads/main/multi-user-todo-meals-app/multi-user-todo-meals-app.jacpack
cd my-meals-app && jac install
jac start main.jacRequired environment variables:
export ANTHROPIC_API_KEY=your_anthropic_api_keyFeatures:
- Everything from the Multi-User Todo App, plus:
- AI meal planner -- describe a meal, get a full ingredient shopping list
- Estimated costs in JMD with total calculation
- Carbohydrate/glucose spike indicators per ingredient
- Two-column responsive layout (todos + meal planner side by side)
- Structured LLM output using
byllmwith typed objects and semantic annotations
An interactive browser-based code editor and runner for Jac. Runs entirely client-side using WebAssembly and Pyodide -- no backend required.
jac create my-playground --use https://raw.githubusercontent.com/jaseci-labs/jacpacks/refs/heads/main/jac-playground/jacPlayground.jacpack
cd my-playground && jac install
jac start main.jacFeatures:
- Monaco editor with Jac syntax highlighting
- Real-time in-browser code execution via Pyodide
- Interactive graph visualizer for Jac data structures
- Bidirectional Jac/Python code conversion
- Debugging tools with breakpoint support
- Built-in example library
- Dark/light mode and mobile-responsive layout
A documentation assistant for the Jac language, built as a fullstack Jac application.
jac create my-jac-gpt --use https://raw.githubusercontent.com/jaseci-labs/jacpacks/refs/heads/main/jac-gpt/jac-gpt.jacpack
cd my-jac-gpt && jac install
jac start main.jacRequired environment variables:
export OPENAI_API_KEY=your_openai_api_keyFeatures:
- Conversational interface for querying Jac documentation
- MongoDB-backed data persistence
An intelligent study companion that transforms text into structured educational material using specialized AI agents.
jac create my-study-app --use https://raw.githubusercontent.com/jaseci-labs/jacpacks/refs/heads/main/AI_Study_Helper/AI_Study_Helper.jacpack
cd my-study-app && jac install
jac start main.jacRequired environment variables:
export GEMINI_API_KEY=your_gemini_api_key
export TAVILY_API_KEY=your_tavily_api_keyFeatures:
- Agent-based architecture with dedicated Quiz, Summarizer, Explanation, and Flashcard agents
- Interactive assessment with multiple-choice question generation and progress tracking
- Web search integration via Tavily for real-time information retrieval
- Four-panel study workspace (quiz, summarize, explain, flashcards)
# List all registered templates (from installed plugins and local files)
jac create --list-jacpacks
# Or use the jacpack subcommand
jac jacpack listjac jacpack info AI_Study_Helper.jacpackTemplates can be referenced by registered name, local file path, or URL:
# From a registered template name
jac create my-app --use client
# From a local .jacpack file
jac create my-app --use ./path/to/template.jacpack
# From a template directory (must contain a jac.toml with a [jacpack] section)
jac create my-app --use ./my-template-dir/
# From a remote URL
jac create my-app --use https://example.com/template.jacpack# Install all dependencies defined in jac.toml
jac add
# Add a Python package
jac add requests
# Add an npm package (requires jac-client plugin)
jac add react --npm
# Install dependencies without adding new ones
jac install# Run a Jac file directly
jac run main.jac
# Start a server (for fullstack apps)
jac start main.jacYou can bundle any Jac project into a distributable jacpack.
[project]
name = "{{name}}"
version = "0.1.0"
entry-point = "main.jac"
[dependencies]
requests = ">=2.28.0"
[jacpack]
name = "my-template"
description = "A brief description of what this template provides"
jaclang = "0.9.0"Use {{name}} as a placeholder in your jac.toml and source files -- it gets replaced with the project name during jac create.
jac jacpack pack ./my-template-dirThis produces a my-template.jacpack file.
Others can use your jacpack directly:
jac create cool-project --use ./my-template.jacpackOr host it at a URL for remote access:
jac create cool-project --use https://example.com/my-template.jacpackA typical Jac project created from a jacpack looks like this:
my-app/
├── jac.toml # Project config and dependencies
├── main.jac # Application entry point
├── *.jac # Additional Jac source files
├── .jac/ # Managed directory (venv, client builds, etc.)
│ └── venv/ # Isolated Python virtual environment
└── .gitignore
The .jac/ directory is auto-managed -- it holds the project's virtual environment and any plugin-generated artifacts (like client-side builds). It should be gitignored.