Skip to content

jaseci-labs/jacpacks

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

24 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Jacpacks - Project Templates for Jac

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.

Prerequisites

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 jaseci

This installs jaclang along with all official plugins (byllm, jac-client, jac-scale, jac-super).

If you only need the language runtime:

pip install jaclang

Verify your installation:

jac version

IDE Setup

Install the Jac extension for VS Code (also works in Cursor) for syntax highlighting, diagnostics, and language server support.


Quick Start

Every jacpack follows the same workflow:

# 1. Create a new project from a jacpack
jac create my-app --use <template>

# 2. Move into the project directory
cd my-app

# 3. Install dependencies
jac add

# 4. Set any required environment variables (see each jacpack's section below)

# 5. Start the application
jac start main.jac

The server runs at http://localhost:8000 by default.


Available Jacpacks

AI Study Helper

An intelligent study companion that transforms text into structured educational material using specialized AI agents.

jac create my-study-app --use AI_Study_Helper.jacpack
cd my-study-app && jac add

Required environment variables:

export GEMINI_API_KEY=your_gemini_api_key
export TAVILY_API_KEY=your_tavily_api_key

Features:

  • 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)

TasteTalk

A restaurant feedback management system that collects, analyzes, and responds to customer feedback with AI-powered insights.

jac create my-tastetalk --use TasteTalk.jacpack
cd my-tastetalk && jac add

Required environment variables:

export GEMINI_API_KEY=your_gemini_api_key

Features:

  • Customer portal for submitting feedback with AI-generated responses
  • Admin dashboard with sentiment distribution charts, category tracking, and AI summaries
  • Multi-language support (Sinhala/Tamil)
  • Persistent storage with SQLite-backed TieredMemory
  • Graph database backend via Jac-Scale

Algo

A voice-enabled personal AI assistant with calendar, email, and GitHub integration.

jac create my-algo --use Algo.jacpack
cd my-algo && jac add

Required environment variables:

export OPENAI_API_KEY=your_openai_api_key

Features:

  • 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)

Jac Playground

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 jacplayground.jacpack
cd my-playground && jac add --npm
jac start

Features:

  • 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

Jac GPT

A documentation assistant for the Jac language, built as a fullstack Jac application.

jac create my-jac-gpt --use jac-gpt.jacpack
cd my-jac-gpt && jac add

Required environment variables:

export OPENAI_API_KEY=your_openai_api_key

Features:

  • Conversational interface for querying Jac documentation
  • MongoDB-backed data persistence

Jacpack CLI Reference

Listing available templates

# List all registered templates (from installed plugins and local files)
jac create --list-jacpacks

# Or use the jacpack subcommand
jac jacpack list

Inspecting a jacpack

jac jacpack info AI_Study_Helper.jacpack

Creating a project

Templates 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

Managing dependencies

# 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

Running a project

# Run a Jac file directly
jac run main.jac

# Start a server (for fullstack apps)
jac start main.jac

Creating Your Own Jacpack

You can bundle any Jac project into a distributable jacpack.

1. Add a [jacpack] section to your jac.toml

[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.

2. Bundle it

jac jacpack pack ./my-template-dir

This produces a my-template.jacpack file.

3. Share it

Others can use your jacpack directly:

jac create cool-project --use ./my-template.jacpack

Or host it at a URL for remote access:

jac create cool-project --use https://example.com/my-template.jacpack

Project Structure

A 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.


Useful Links

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •