A CLI tool to create new ragbits applications from templates.
# Create a new ragbits application
uvx create-ragbits-app
A simple RAG application that wires together the core pieces:
- Uses Ragbits RAG components with your choice of vector store (
Qdrant
orpgvector
). - Document parsing with either
docling
orunstructured
. - Includes a CLI tool to ingest and index documents.
Good starting point if you just want a plain RAG setup to build on.
A minimal agent example that calls an external tool:
- Fetches the latest financial news from Yahoo Finance.
- Summarizes the news into a short response.
Useful as a first look at how to connect agents with external APIs.
A larger agent system that produces detailed reports:
- Runs a network of agents that split the task into smaller steps.
- Uses Tavily to search the web for up-to-date information.
- Outputs a structured report with sections and references.
Good example if you want to see how to coordinate multiple agents to solve a complex task.
When setting up a new project you can pick how the UI should be included. There are three options:
Runs the prebuilt Ragbits Chat UI directly from the package.
- Works right away, no setup required.
- The UI can’t be modified.
- Good for quick tests and demos.
Copies the Ragbits Chat UI source code into a local ui
directory.
- You can change anything in the UI (components, styles, features).
- The code lives in your repo and evolves with your project.
- Best if you plan to customize or extend the UI.
Creates a new Vite project with Ragbits libraries already installed.
- Gives you a clean base to build your own UI.
- No predefined components — you decide how to connect to the backend.
- Useful if you want to integrate Ragbits into an existing design system or build something from scratch.
Templates are stored in the templates/
directory. Each template consists of:
- A directory with the template name
- A
template_config.py
file with template metadata and questions - Template files, with
.j2
extension for files that should be processed as Jinja2 templates
Available variables in templates:
project_name
: Name of the projectpkg_name
: Name of the python packageragbits_version
: Latest version of ragbits- Custom variables from template questions
To create a new template, add a directory under templates/
with:
- Template files (ending in
.j2
) - these will be rendered using Jinja2 - A
template_config.py
file with template metadata and questions
For example, see the templates/example-template
directory.
The template_config.py
file should define a TemplateConfig
class that inherits from TemplateConfig
and creates a config
instance at the bottom of the file:
from typing import List
from create_ragbits_app.template_config_base import (
TemplateConfig,
TextQuestion,
ListQuestion,
ConfirmQuestion
)
class ExampleTemplateConfig(TemplateConfig):
name: str = "My Template Name"
description: str = "Description of the template"
questions: List = [
TextQuestion(
name="variable_name",
message="Question to display to user",
default="Default value"
),
# More questions...
]
# Create instance of the config to be imported
config = ExampleTemplateConfig()