private-gpt
Complete API layer for private AI applications on local models: RAG, skills, tools, MCP, text-to-sql, and more. Works with any OpenAI-compatible inference server.
File Explorer
Download Latest Version (.zip)- bug.yml
- config.yml
- docs.yml
- feature.yml
- question.yml
- .release-please-config.json
- .release-please-manifest.json
- action.yml
- fern-check.yml
- generate-release.yml
- post-release-please.yml
- preview-docs.yml
- publish-docs.yml
- release-please.yml
- stale.yml
- tests.yml
- update-claude-specs.yml
- dependabot.yml
- pull_request_template.md
- claude_cowork_privategpt.png
- favicon.ico
- header.jpeg
- logo_dark.png
- logo_light.png
- ms_excel_claude_privategpt.png
- ms_word_claude_privategpt.png
- n8n_privategpt.png
- opencode_privategpt.png
- privategpt_banner.png
- privategpt_workbench.png
- ui.png
- zylon_banner.png
- embeddings.mdx
- ingestion-async.mdx
- ingestion.mdx
- messages-async.mdx
- messages.mdx
- skills.mdx
- tools.mdx
- api-reference.mdx
- sdks.mdx
- forks.mdx
- advanced.mdx
- cli.mdx
- settings.mdx
- how-it-works.mdx
- quickstart.mdx
- docker.mdx
- local.mdx
- package.mdx
- claude-code.mdx
- claude-desktop.mdx
- claude-office.mdx
- opencode.mdx
- overview.mdx
- observability.mdx
- daoxe.mdx
- llamacpp.mdx
- lmstudio.mdx
- ollama.mdx
- orcarouter.mdx
- overview.mdx
- vllm.mdx
- troubleshooting.mdx
- storage.mdx
- vectordb.mdx
- code-execution.mdx
- database-tools.mdx
- web-tools.mdx
- workbench.mdx
- index.mdx
- openapi.json
- docs.yml
- fern.config.json
- generators.yml
- README.md
- __init__.py
- iteration_state.py
- __init__.py
- callback.py
- resume.py
- settings.py
- start.py
- __init__.py
- __init__.py
- __init__.py
- __main__.py
- enqueue.py
- healthcheck.py
- hooks.py
- lifecycle.py
- runner.py
- settings.py
- task_registry.py
- __init__.py
- artifact_exception.py
- base_artifact_index.py
- vector_artifact_index.py
- __init__.py
- __init__.py
- delete_tasks.py
- extraction_tasks.py
- __init__.py
- tool_run_task.py
- __init__.py
- backend_config.py
- base.py
- bootsteps.py
- broker_config.py
- callback.py
- celery.py
- config.py
- dispatch.py
- error.py
- healthcheck.py
- model.py
- notify.py
- result.py
- states.py
- task_helper.py
- task_registry.py
- __init__.py
- citation.py
- context_filter.py
- __init__.py
- input_models.py
- schema_models.py
- __init__.py
- run.py
- serve.py
- worker.py
- __init__.py
- main.py
- __init__.py
- blocking_publisher.py
- broker_component.py
- __init__.py
- cache_service.py
- __init__.py
- agent_models.py
- chat_config_models.py
- __init__.py
- citations.py
- document_preprocessor.py
- __init__.py
- base_strategy.py
- condenser.py
- __init__.py
- condenser.py
- content.py
- format.py
- merge.py
- repairs.py
- splitting.py
- __init__.py
- tldr_processor.py
- tldr_utils.py
- __init__.py
- audio_preprocessor.py
- image_preprocessor.py
- models.py
- multimodality_preprocessor.py
- utils.py
- tool_choices.py
- __init__.py
- __init__.py
- citations.py
- __init__.py
- __init__.py
- __init__.py
- models.py
- __init__.py
- base.py
- bash_executor.py
- code_execution_component.py
- local.py
- path_translator.py
- registry.py
- results.py
- sandbox_session.py
- __init__.py
- memory_semaphore_manager.py
- redis_semaphore_manager.py
- registry.py
- semaphore_manager.py
- __init__.py
- context_layer.py
- context_stack.py
- layer_type.py
- __init__.py
- context_stack_builder.py
- __init__.py
- context_clock.py
- toolset_codec.py
- __init__.py
- errors.py
- __init__.py
- connection_factory.py
- function_inspector.py
- inspected_schema.py
- inspector_interface.py
- procedure_inspector.py
- table_inspector.py
- table_like_inspector.py
- view_inspector.py
- __init__.py
- base.py
- factory.py
- mock.py
- openai.py
- openailike.py
- __init__.py
- discovery.py
- embedding_component.py
- registry.py
- __init__.py
- chat_interceptor.py
- chat_interceptor_chain.py
- ensure_index_is_refreshed_interceptor.py
- ensure_timestamp_in_content_blocks_interceptors.py
- ensure_tools_are_flatten_interceptor.py
- restore_stateless_input_interceptor.py
- __init__.py
- chat_interceptor_context.py
- chat_llm_params.py
- chat_loop_interceptor_context.py
- chat_loop_phase.py
- chat_loop_state.py
- chat_phase.py
- chat_state.py
- execution_hooks.py
- __init__.py
- __init__.py
- message_utils.py
- request_builder.py
- tool_utils.py
- __init__.py
- async_chat_engine.py
- chat_engine.py
- chat_engine_interface.py
- chat_runner.py
- checkpoint_store.py
- event_broker.py
- event_channel.py
- execution_scheduler.py
- resumable_runner.py
- types.py
- __init__.py
- format.py
- parser.py
- term_extractor.py
- types.py
- utils.py
- __init__.py
- __init__.py
- content_mounter.py
- environment.py
- layout.py
- manager.py
- mounter.py
- __init__.py
- df_preprocessor.py
- __init__.py
- errors.py
- models.py
- __init__.py
- combine_tree_transform.py
- convert_image_to_full_slide_transform.py
- create_llama_index_relationships_transform.py
- describe_image_transform.py
- extract_slide_content_from_image_and_text_transform.py
- flatten_tree_nodes_transform.py
- image_deduplication_transform.py
- include_token_count_to_nodes_transform.py
- make_continuation_markdown_transform.py
- mark_hidden_nodes_transform.py
- mark_no_prunable_nodes_transform.py
- markdown_normalization_transform.py
- markdown_to_tree_transform.py
- refresh_tree_node_transform.py
- remove_header_and_footer_transform.py
- replace_images_for_placeholder.py
- sentence_tree_node_parser.py
- slide_header_checker_transform.py
- vision_docs_transformations.py
- __init__.py
- fake_progress.py
- ingest_component.py
- ingest_helper.py
- metadata_helper.py
- page_quality.py
- parse_component.py
- pdf_page_split.py
- utils.py
- __init__.py
- ingestion_scheduler.py
- __init__.py
- base.py
- mock.py
- openai.py
- openailike.py
- openailikeresponses.py
- openairesponses.py
- sagemaker.py
- structured_mixin.py
- reasoning_budget.py
- __init__.py
- generic.py
- openai.py
- openailike.py
- __init__.py
- generic.py
- openai.py
- openailike.py
- __init__.py
- base.py
- mock.py
- openai.py
- registry.py
- __init__.py
- chat_template_prompt_style.py
- prompt_style_base.py
- registry.py
- __init__.py
- harmony_text_parser.py
- registry.py
- text_parser_base.py
- __init__.py
- auto_discovery.py
- model_cache.py
- model_discovery.py
- model_downloader.py
- __init__.py
- estimator.py
- huggingface.py
- mistral.py
- mock.py
- registry.py
- remote.py
- tiktoken.py
- tokenizer_base.py
- utils.py
- __init__.py
- discovery.py
- llm_component.py
- llm_helper.py
- models.py
- priorities.py
- prompt_helper.py
- registry.py
- utils.py
- markdown_helper.py
- memory.py
- trimming_memory.py
- __init__.py
- base.py
- sqlalchemy_backend.py
- __init__.py
- models.py
- runner.py
- __init__.py
- base.py
- fallback.py
- llamacpp.py
- lmstudio.py
- ollama.py
- openai.py
- vllm.py
- __init__.py
- client.py
- models.py
- service.py
- strategies.py
- url_utils.py
- __init__.py
- audio_handler.py
- image_handler.py
- __init__.py
- node_store_component.py
- patched_document_store.py
- patched_postgres.py
- patched_postgres_kv_store.py
- __init__.py
- migrations.py
- persistence_component.py
- repository_base.py
- postgres_client.py
- __init__.py
- document_expander.py
- paper_distance.py
- split_subtrees.py
- table_expansion_post_processor.py
- tree_expansion_replacement_post_processor.py
- __init__.py
- convert_into_llama_index_nodes.py
- prev_next_replacement.py
- window_prev_next_replacement.py
- condense.j2
- citations.j2
- thinking.j2
- base.j2
- bash.j2
- database_query.j2
- semantic_search.j2
- skills.j2
- tabular_analysis.j2
- web_fetch.j2
- web_search.j2
- chunk.j2
- context.j2
- history_approxymately.j2
- in_detail.j2
- classification.j2
- complexity.j2
- evaluation.j2
- transcription.j2
- transcription_response.j2
- classification.j2
- complexity.j2
- document_image_extract.j2
- evaluation.j2
- interpretation.j2
- interpretation_response.j2
- pptx_slide_fusion.j2
- base.j2
- rules.j2
- summary.j2
- prompt_builder.py
- prompt_template.py
- rich_template.py
- __init__.py
- api_clients.py
- common.py
- docling_api_reader.py
- docling_transforms.py
- utils.py
- __init__.py
- base.py
- docling.py
- factory.py
- hybrid_pdf.py
- markitdown.py
- pdf_inspector.py
- pptx2md.py
- text.py
- vision.py
- __init__.py
- markitdown_reader.py
- document_node_v2.py
- __init__.py
- chunk_node.py
- diff_node.py
- document_node.py
- fragment_node.py
- frozen_node.py
- image_node.py
- list_node.py
- node_print.py
- partial_node.py
- section_node.py
- table_node.py
- text_node.py
- tree_node.py
- utils.py
- __init__.py
- hybrid_pdf_reader.py
- pdf_inspector_reader.py
- __init__.py
- convert_slide_into_image.py
- pptx2md_reader.py
- slides_transforms.py
- __init__.py
- delimiter_reader.py
- email_reader.py
- html_reader.py
- text_reader.py
- __init__.py
- convert_doc_into_image.py
- vision_reader.py
- vision_transforms.py
- __init__.py
- base_reader.py
- reader_component.py
- registry.py
- __init__.py
- base.py
- content_bundle.py
- local.py
- mount.py
- registry.py
- sandbox_component.py
- __init__.py
- skill_entities.py
- sqlalchemy_models.py
- __init__.py
- skill_repository.py
- __init__.py
- skill_loader.py
- skill_service.py
- __init__.py
- __init__.py
- errors.py
- migrations.py
- parser.py
- paths.py
- sqlite_client.py
- __init__.py
- models.py
- object_storage.py
- s3_helper.py
- storage_component.py
- __init__.py
- in_memory_stream_service.py
- models.py
- redis_stream_service.py
- stream_service.py
- __init__.py
- event_handler.py
- stream_manager.py
- stream_processor.py
- stream_reader.py
- __init__.py
- chat_scheduler.py
- task_manager.py
- __init__.py
- registry.py
- stream_component.py
- __init__.py
- __init__.py
- database_query_generator.py
- pandasai_model.py
- pandasai_sandbox.py
- pandasai_service.py
- __init__.py
- engine.py
- models.py
- rules.py
- __init__.py
- bash_tool_builder.py
- database_query_builder.py
- present_files_tool_builder.py
- present_server_tool_builder.py
- semantic_search_builder.py
- skill_management_builder.py
- summary_builder.py
- tabular_data_builder.py
- text_editor_code_execution_tool_builder.py
- text_editor_tool_builder.py
- web_fetch_builder.py
- web_search_builder.py
- __init__.py
- adapters.py
- registry.py
- __init__.py
- anthropic_tool_translation_processor.py
- base.py
- bash_processor.py
- code_execution_processor.py
- database_query_processor.py
- present_files_processor.py
- present_server_processor.py
- semantic_search_processor.py
- skill_management_processor.py
- tabular_data_processor.py
- text_editor_processor.py
- web_fetch_processor.py
- web_search_processor.py
- __init__.py
- anthropic_tools.py
- binary_block_decorators.py
- remote_execution.py
- tool_execution_outcome.py
- tool_factories.py
- tool_names.py
- tool_pipeline.py
- tool_placeholders.py
- tool_scheduler.py
- types.py
- utils.py
- filesystem_toolset_factory.py
- __init__.py
- tool_definition.py
- tool_set.py
- __init__.py
- in_memory_toolset_repository.py
- toolset_repository.py
- __init__.py
- toolset_service.py
- __init__.py
- errors.py
- __init__.py
- factory.py
- patched_qdrant_store.py
- qdrant_client_builder.py
- qdrant_factory.py
- vector_store_component.py
- __init__.py
- base.py
- batcher.py
- local.py
- pool.py
- registry.py
- runner.py
- scrape_script.py
- __init__.py
- base.py
- clean_content.py
- scraped_content_processor.py
- select_best_links.py
- simple_text.py
- __init__.py
- base.py
- brave.py
- cached.py
- mock.py
- __init__.py
- models.py
- web_search_service.py
- __init__.py
- web_scraper_service.py
- __init__.py
- condenser.py
- summary.py
- summary_query_engine.py
- summary_retriever.py
- tree_summarize_synthesizer.py
- __init__.py
- retrieval.py
- semantic_search.py
- __init__.py
- tabular_data.py
- __init__.py
- types.py
- __init__.py
- container_registry.py
- base_event_interceptor.py
- filter_zylon_event_interceptor.py
- ping_event_interceptor.py
- __init__.py
- _base.py
- _callers.py
- _content_blocks.py
- _converters.py
- _deltas.py
- _errors.py
- _events.py
- _message.py
- _tool_result_blocks.py
- __init__.py
- sse_formatter.py
- sse_manager.py
- sse_producer.py
- __init__.py
- event_errors.py
- event_folding.py
- event_serializer.py
- utils.py
- __init__.py
- chat_interceptor_service.py
- citation_interceptor.py
- condensation_interceptor.py
- configure_tool_execution_interceptor.py
- configure_tool_interceptor.py
- default_values_interceptor.py
- document_file_interceptor.py
- document_processing_interceptor.py
- extract_citation_interceptor.py
- filter_event_by_type_interceptor.py
- internal_tools_interceptor.py
- mcp_interceptor.py
- multimodal_interceptor.py
- null_tool_values_interceptor.py
- platform_guidelines_interceptor.py
- runtime_model_interceptor.py
- schema_coercing_tool_interceptor.py
- server_tool_result_text_interceptor.py
- skill_tool_visibility_interceptor.py
- skills_loop_interceptor.py
- skills_validation_interceptor.py
- system_prompt_interceptor.py
- tool_choice_interceptor.py
- validator_request_interceptor.py
- __init__.py
- chat_facade.py
- chat_models.py
- chat_request_mapper.py
- chat_router.py
- chat_service.py
- __init__.py
- chat_async_facade.py
- chat_async_router.py
- chat_async_service.py
- __init__.py
- completion_router.py
- completion_service.py
- __init__.py
- content_router.py
- content_service.py
- __init__.py
- embeddings_router.py
- embeddings_service.py
- __init__.py
- file_models.py
- file_service.py
- files_router.py
- __init__.py
- health_router.py
- __init__.py
- convert_router.py
- convert_service.py
- ingest_router.py
- ingest_service.py
- ingest_watcher.py
- model.py
- uri_loader.py
- __init__.py
- _runtime.py
- config.py
- mcp_service.py
- __init__.py
- models_router.py
- models_service.py
- __init__.py
- primitives_router.py
- primitives_service.py
- semantic_search_service.py
- __init__.py
- skill_models.py
- skill_router.py
- skills_files.py
- __init__.py
- tool_router.py
- tool_service.py
- __init__.py
- artifact_input.py
- auth.py
- callback.py
- http_disconnect.py
- openapi_models.py
- __init__.py
- principal.py
- __init__.py
- settings.py
- settings_loader.py
- yaml.py
- __init__.py
- async_utils.py
- batches.py
- concurrency.py
- custom_typing.py
- dataframe.py
- dependencies.py
- eta.py
- mime.py
- pool.py
- random.py
- retry.py
- runner.py
- time.py
- token.py
- tokens.py
- __init__.py
- __main__.py
- modes.py
- registry.py
- __init__.py
- __main__.py
- constants.py
- di.py
- docs.py
- eager_loading.py
- global_handler.py
- initialize.py
- launcher.py
- main.py
- paths.py
- py.typed
- __init__.py
- auto_discover_models.py
- build_pip_index.py
- extract_openapi.py
- generate_homebrew_formula.py
- ingest_folder.py
- set_version.py
- update_claude_specs.py
- worker_entrypoint
- test_callback.py
- test_cancel.py
- test_resume.py
- test_start.py
- test_healthcheck.py
- test_runner.py
- test_task_registry.py
- test_tool_run_task.py
- test_base_task.py
- test_bootsteps.py
- test_chat_worker.py
- test_healthcheck.py
- test_notify.py
- test_result.py
- test_task_registry.py
- test_tasks.py
- test_tldr_side.py
- test_tool_choices.py
- test_dabatase_not_supported_types.py
- test_dabatase_query_generator.py
- test_document_preprocessor.py
- test_openai_embedding_factory.py
- test_parse_component_pdf_inspector.py
- test_ingestion_scheduler.py
- test_base_interceptors.py
- test_reasoning_budget_llm.py
- conftest.py
- test_broken_states.py
- test_cache_evolution.py
- test_concurrency.py
- test_downloader.py
- test_validation_logic.py
- test_models.py
- test_format_memory.py
- test_repair_memory.py
- test_tldr_memory.py
- test_describe_audio.py
- test_describe_image.py
- test_multimodality.py
- .gitignore
- __init__.py
- test_document_expander.py
- test_paper_distance.py
- test_split_subtrees.py
- test_prev_next_replacement.py
- test_df_preprocessor.py
- test_prompt_builder_service.py
- test_prompt_template_service.py
- another_file_no_utf8.html
- another_file_no_utf8.md
- file.csv
- file.docx
- file.eml
- file.html
- file.md
- file.txt
- file.xls
- file.xlsx
- file_comma.csv
- file_emoji.html
- file_emoji.md
- file_failing.docx
- file_failing.ppt
- file_general_elements.pdf
- file_image.pdf
- file_multicolumn.pdf
- file_no_utf8.html
- file_pipe.psv
- file_quote.csv
- file_scanned.pdf
- file_semicolon.csv
- file_tab.tsv
- file_unknown.txt
- file_window.html
- test_diff_nodes.py
- test_node_structure.py
- test_node_utils.py
- test_table_nodes.py
- test_pdf_inspector_reader.py
- test_reader_registry.py
- test_text_reader.py
- test_skill_management_builder.py
- test_skill_management_builder_injection_mode.py
- test_skill_service_storage_atomicity.py
- test_s3_helper.py
- __init__.py
- test_chat_scheduler.py
- test_stream_multiplexer.py
- test_engine.py
- test_anthropic_tool_translation_processor.py
- test_code_execution_builders.py
- test_code_execution_local.py
- test_processor_builder_contracts.py
- test_server_tool_events.py
- test_tool_names.py
- test_tool_pipeline.py
- test_tool_scheduler.py
- test_continuation_markdown_transform.py
- test_include_token_count_transform.py
- test_normalization_identation_transform.py
- test_remove_header_and_footer_transform.py
- test_markdown_node_transform.py
- test_sentence_node_parser.py
- test_patched_qdrant_store.py
- __init__.py
- test_scrape_batcher.py
- test_scrape_session_pool.py
- test_web_scraper_registry.py
- test_web_scraper_runner.py
- test_web_scraper_service.py
- test_brave_provider.py
- test_rate_limit_brave.py
- test_web_search_service.py
- test_summary_edge_cases.py
- test_summary_query_engine.py
- test_condense_workflow.py
- test_retrieval_workflow.py
- test_semantic_search_workflow.py
- test_async_chat_engine.py
- test_chat_agent_engine.py
- test_citation_chunk_boundaries.py
- test_citation_engine.py
- test_citation_parser_robustness.py
- test_citation_streaming_quotes.py
- test_processor_citations.py
- test_processor_citations_streaming_robustness.py
- test_resumable_runner.py
- test_resumable_runtime.py
- test_term_extractor.py
- test_ping_event_interceptor.py
- __init__.py
- async_loop.py
- auto_close_qdrant.py
- fast_api_test_client.py
- ingest_helper.py
- mock_function_llm.py
- mock_injector.py
- .gitignore
- openapi_drift_whitelist.json
- registry.py
- test_field_parity.py
- test_openapi_schema.py
- test_registry_completeness.py
- test_sdk_parse.py
- test_anthropic_client.py
- test_langchain_anthropic.py
- test_runtime_model_interceptor.py
- test_schema_coercing_tool_interceptor.py
- test_skill_tool_visibility_interceptor.py
- test_system_prompt_interceptor.py
- test_validation_request_interceptor.py
- test_chat_async_router.py
- test_chat_async_worker.py
- test_chat_facade.py
- test_chat_knowledge_revamp.py
- test_chat_model_mapper.py
- test_chat_routes.py
- test_chat_routes_skills_integration.py
- test_chat_service.py
- test_input_models.py
- test_schema_models.py
- chunk_test.txt
- test_content_router.py
- test_content_service.py
- test_embedding_routes.py
- test_content_block.py
- test_content_block_pruning.py
- test_mcp_tokens_refreshed_event.py
- __init__.py
- test_files_sdk.py
- __init__.py
- conftest.py
- test_files_router.py
- pdf_encrypted.pdf
- pdf_with_annotations.pdf
- pdf_with_forms.pdf
- pdf_with_multiple_pages.pdf
- test.pdf
- test.txt
- test_convert_routes.py
- test_file_validation.py
- test_ingest_routes.py
- test_ingest_service.py
- test_ingestion_async.py
- test_mcp_interceptor.py
- test_mcp_runtime_oauth.py
- test_mcp_service.py
- test_mcp_tool_execution.py
- test_models_service.py
- chunk_test.txt
- test_primitives_router.py
- test_skill_routes.py
- test_skills_files.py
- test_auth.py
- test_dependencies.py
- test_http_disconnect.py
- test_openapi.py
- test_simple_auth.py
- test_ui_mount.py
- test_settings.py
- test_settings_loader.py
- test_producer.py
- test_sse.py
- test_sse_manager.py
- test_tokens.py
- test_modes.py
- test_registry.py
- __init__.py
- conftest.py
- test_di.py
- PRD.md
- SOURCE_OF_TRUTH.md
- STYLE_GUIDE.md
- chat-tools-composer.png
- context-knowledge-base.png
- logo-privategpt-wordmark-dark-transparent.svg
- logo-privategpt-wordmark-white-transparent.svg
- primary-chat-layout.png
- search-overlay.png
- AGENTS.md
- CLAUDE.md
- favicon.ico
- index.html
- README.md
- .dockerignore
- .gitignore
- CHANGELOG.md
- CITATION.cff
- Dockerfile
- LICENSE
- Makefile
- pyproject.toml
- README.md
- SECURITY.md
- settings-mock.yaml
- settings-test.yaml
- settings.yaml
- uv.lock
- version.txt
π Installation Guide
git clone https://github.com/zylon-ai/private-gpt
Downloads the entire project code from GitHub to your computer.
cd private-gpt
Moves into the project folder you just downloaded.
2. Official Install Script
Easy Recommended- Homebrew A package manager for macOS/Linux.
brew tap zylon-ai/tap
Registers this project's repository (tap) with Homebrew.
brew install private-gpt
Installs the pre-built package via Homebrew β no source build required.
curl -LsSf https://astral.sh/uv/install.sh | sh
Downloads and runs the official install script in one line β this handles the full setup automatically.
Pulled directly from this repo's README.
3. Docker
Easy- Git Needed to download the project code from GitHub.
- Docker Desktop Needed to build and run containers. Install it and keep it running in the background.
docker build -t private-gpt .
Builds a runnable image based on the Dockerfile.
docker run -p 8080:80 private-gpt
Runs the built image as an actual container.
4. Python
Easypip install .
Installs the package published on PyPI directly β no need to clone the source.
python <μ€νν νμΌλͺ
>.py # READMEμμ μ νν μ€ν νμΌλͺ
μ νμΈνμΈμ
Runs the Python script (or module).
5. Make
Medium- Git Needed to download the project code from GitHub.
- Make Usually pre-installed on Linux/macOS. On Windows, install separately (e.g. via MSYS2 or WSL).
make
Compiles the code based on the generated build configuration to produce an executable.
