diff --git a/llama-index-experimental/pyproject.toml b/llama-index-experimental/pyproject.toml
index 926212800dc3e141408c640cbab9dbe96cd45c28..7ecd2969d0b4f2ec5892e295255406fbf0a82252 100644
--- a/llama-index-experimental/pyproject.toml
+++ b/llama-index-experimental/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = []
+contains_example = false
+import_path = "llama_index.experimental"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-finetuning/pyproject.toml b/llama-index-finetuning/pyproject.toml
index 420b28c1206f6139a557cc29d4c30910517bed09..b073a6e23459ced30ac09122a59c533d51be40a1 100644
--- a/llama-index-finetuning/pyproject.toml
+++ b/llama-index-finetuning/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["CohereRerankerFinetuneEngine", "EmbeddingAdapterFinetuneEngine", "EmbeddingQAFinetuneDataset", "GradientFinetuneEngine", "OpenAIFinetuneEngine", "SentenceTransformersFinetuneEngine", "generate_cohere_reranker_finetuning_dataset", "generate_qa_embedding_pairs"]
+contains_example = false
+import_path = "llama_index.finetuning"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/agent/llama-index-agent-openai-legacy/pyproject.toml b/llama-index-integrations/agent/llama-index-agent-openai-legacy/pyproject.toml
index 2ff109765c0a676e89a76dec866d940bbab5d727..911283c403b8f372d4c638fe964e95f22d007998 100644
--- a/llama-index-integrations/agent/llama-index-agent-openai-legacy/pyproject.toml
+++ b/llama-index-integrations/agent/llama-index-agent-openai-legacy/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BaseOpenAIAgent", "ContextRetrieverOpenAIAgent", "FnRetrieverOpenAIAgent", "OpenAIAgent"]
+contains_example = false
+import_path = "llama_index.agent.openai_legacy"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/agent/llama-index-agent-openai/pyproject.toml b/llama-index-integrations/agent/llama-index-agent-openai/pyproject.toml
index 358cee1d1dfcb714e642115fdbcd7e265164b266..fec0867b556d3bc45997bb00f195ba9d537b5c3a 100644
--- a/llama-index-integrations/agent/llama-index-agent-openai/pyproject.toml
+++ b/llama-index-integrations/agent/llama-index-agent-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAIAgent", "OpenAIAgentWorker", "OpenAIAssistantAgent"]
+contains_example = false
+import_path = "llama_index.agent.openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/callbacks/llama-index-callbacks-aim/pyproject.toml b/llama-index-integrations/callbacks/llama-index-callbacks-aim/pyproject.toml
index 2a5f2b63f6eb9857e84a119ad54c6abc777b6c76..47e9c604963a36e9b2740140315b2388ace24250 100644
--- a/llama-index-integrations/callbacks/llama-index-callbacks-aim/pyproject.toml
+++ b/llama-index-integrations/callbacks/llama-index-callbacks-aim/pyproject.toml
@@ -8,6 +8,11 @@ check-hidden = true
 ignore-words-list = "Gere"
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AimCallback"]
+contains_example = false
+import_path = "llama_index.callbacks.aim"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/callbacks/llama-index-callbacks-argilla/pyproject.toml b/llama-index-integrations/callbacks/llama-index-callbacks-argilla/pyproject.toml
index 89b0e00149f4456839d156b8381c4ba7ada6928e..8cbbd708a5eee203a2cee0ebaec4c4537a9ad8ee 100644
--- a/llama-index-integrations/callbacks/llama-index-callbacks-argilla/pyproject.toml
+++ b/llama-index-integrations/callbacks/llama-index-callbacks-argilla/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["argilla_callback_handler"]
+contains_example = false
+import_path = "llama_index.callbacks.argilla"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/callbacks/llama-index-callbacks-arize-phoenix/pyproject.toml b/llama-index-integrations/callbacks/llama-index-callbacks-arize-phoenix/pyproject.toml
index d6484b904511ac2e76182b18ce181295284c05e9..1de9f3cd3b8b442948e839c128f1083bb65015ba 100644
--- a/llama-index-integrations/callbacks/llama-index-callbacks-arize-phoenix/pyproject.toml
+++ b/llama-index-integrations/callbacks/llama-index-callbacks-arize-phoenix/pyproject.toml
@@ -8,6 +8,11 @@ check-hidden = true
 ignore-words-list = "Gere"
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["arize_phoenix_callback_handler"]
+contains_example = false
+import_path = "llama_index.callbacks.arize_phoenix"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/callbacks/llama-index-callbacks-deepeval/pyproject.toml b/llama-index-integrations/callbacks/llama-index-callbacks-deepeval/pyproject.toml
index ff5a8d2c0237eff52f0f5869d34e3494a2e9e186..76201455beb464552ddeec49a1602111053f7bfa 100644
--- a/llama-index-integrations/callbacks/llama-index-callbacks-deepeval/pyproject.toml
+++ b/llama-index-integrations/callbacks/llama-index-callbacks-deepeval/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["deepeval_callback_handler"]
+contains_example = false
+import_path = "llama_index.callbacks.deepeval"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/callbacks/llama-index-callbacks-honeyhive/pyproject.toml b/llama-index-integrations/callbacks/llama-index-callbacks-honeyhive/pyproject.toml
index 88b1442a0003ae289c5c89fdc638fe40fd657251..c7523f477020a980733d3398bea2c2c7b46c0234 100644
--- a/llama-index-integrations/callbacks/llama-index-callbacks-honeyhive/pyproject.toml
+++ b/llama-index-integrations/callbacks/llama-index-callbacks-honeyhive/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["honeyhive_callback_handler"]
+contains_example = false
+import_path = "llama_index.callbacks.honeyhive"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/callbacks/llama-index-callbacks-openinference/pyproject.toml b/llama-index-integrations/callbacks/llama-index-callbacks-openinference/pyproject.toml
index 53107f145b90d23a095a781ddbc2c13e84e75cd3..697fe0efc50d920d9edde8d3f1eb09b502110448 100644
--- a/llama-index-integrations/callbacks/llama-index-callbacks-openinference/pyproject.toml
+++ b/llama-index-integrations/callbacks/llama-index-callbacks-openinference/pyproject.toml
@@ -8,6 +8,11 @@ check-hidden = true
 ignore-words-list = "Gere"
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenInferenceCallbackHandler"]
+contains_example = false
+import_path = "llama_index.callbacks.openinference"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/callbacks/llama-index-callbacks-promptlayer/pyproject.toml b/llama-index-integrations/callbacks/llama-index-callbacks-promptlayer/pyproject.toml
index b10fe9d2446414d97d7a8be94d8333b10f6b3124..393928b3c285133614e6c02434fa819dc8d48c18 100644
--- a/llama-index-integrations/callbacks/llama-index-callbacks-promptlayer/pyproject.toml
+++ b/llama-index-integrations/callbacks/llama-index-callbacks-promptlayer/pyproject.toml
@@ -8,6 +8,11 @@ check-hidden = true
 ignore-words-list = "Gere"
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PromptLayerHandler"]
+contains_example = false
+import_path = "llama_index.callbacks.promptlayer"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/callbacks/llama-index-callbacks-wandb/pyproject.toml b/llama-index-integrations/callbacks/llama-index-callbacks-wandb/pyproject.toml
index 40e0be7f0b7aa079d1609735dda029fd17f08618..0a51f0a090eef2bf2146debb051039b3a5b57b8b 100644
--- a/llama-index-integrations/callbacks/llama-index-callbacks-wandb/pyproject.toml
+++ b/llama-index-integrations/callbacks/llama-index-callbacks-wandb/pyproject.toml
@@ -8,6 +8,11 @@ check-hidden = true
 ignore-words-list = "Gere"
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WandbCallbackHandler"]
+contains_example = false
+import_path = "llama_index.callbacks.wandb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-adapter/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-adapter/pyproject.toml
index 21237e4e804270f716668bb45dcad195a1a94530..9a8c719a27aa8e3567dc281f6eb2505564109427 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-adapter/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-adapter/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AdapterEmbeddingModel"]
+contains_example = false
+import_path = "llama_index.embeddings.adapter"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-anyscale/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-anyscale/pyproject.toml
index 396db79a9ba4f19729ef73b94d0aac86cdd66dad..41d8d4d151399350445b7eac550da64c8afe6fdc 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-anyscale/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-anyscale/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AnyscaleEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.anyscale"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-azure-openai/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-azure-openai/pyproject.toml
index 34d371a699415a656df420298de5f4c83381bdbb..74238ea32c373aee673412433efe64e84340941d 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-azure-openai/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-azure-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AsyncAzureOpenAI", "AzureOpenAI", "AzureOpenAIEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.azure_openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/pyproject.toml
index 90eca2ae66dc48b841743d7809796d6628483a12..d96ab0f2cc7a1890c1d65e8826cdcc44067c8933 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-bedrock/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BedrockEmbedding", "Models"]
+contains_example = false
+import_path = "llama_index.embeddings.bedrock"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-clarifai/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-clarifai/pyproject.toml
index 72d99138fcbd2fd82adcd0e2234d1a3a555b88f6..2fab3abe929362067277220ec27a46ce784e66cd 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-clarifai/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-clarifai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ClarifaiEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.clarifai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-clip/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-clip/pyproject.toml
index 9dd2cbb75acdc991dfc45e2a4edce0d9aaf072b2..76bc6a1227dcbc052edd23e6730f45da9c6d6d08 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-clip/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-clip/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ClipEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.clip"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-cohere/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-cohere/pyproject.toml
index 73554c86958ec83641070582987768d7effe937b..7a0b92bfc9602437fdecb4b076c21e8258056144 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-cohere/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-cohere/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["CohereEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.cohere"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-elasticsearch/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-elasticsearch/pyproject.toml
index 63106e29cfacc13acb506ad32f356a273e9bf4af..b835af46d42deea88551b0ef595a7b82a702dece 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-elasticsearch/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-elasticsearch/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ElasticsearchEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.elasticsearch"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-fastembed/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-fastembed/pyproject.toml
index 4026ec0b573c532f17622df5a95a9c71cc418cac..8366484b749847cba5c390e68182f9887bf2fdc8 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-fastembed/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-fastembed/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FastEmbedEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.fastembed"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-gemini/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-gemini/pyproject.toml
index 348648ebb8cb1ce7be64e971fb463ec7c7c2233b..b0c93d8c15d9f3795d01dde9aeae6bedd489a58f 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-gemini/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-gemini/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GeminiEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.gemini"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-google/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-google/pyproject.toml
index d7a1d760049fab5772be7a26e716f8db0c436a0d..dbd9ddf3014444f22e77b01ccaf220b363e6e18e 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-google/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-google/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GeminiEmbedding", "GooglePaLMEmbedding", "GoogleUnivSentEncoderEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.google"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-gradient/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-gradient/pyproject.toml
index b4f2de8fbba95fbec796b95a34c13db501a64407..7e4cc41c9059e8507f82f23d938186763cb1c52c 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-gradient/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-gradient/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GradientEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.gradient"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-huggingface-optimum/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-huggingface-optimum/pyproject.toml
index eeb0e730e9690db9f8ab6d46da3166bc5c2fab1b..608226b7e3e2abcce4f0323e58c49977442c65f0 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-huggingface-optimum/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-huggingface-optimum/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OptimumEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.huggingface_optimum"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/pyproject.toml
index ba7aec0e0797b183af0b36f6db7cd6d929918222..d1bfd014a981e55e00ed0a2ad4dcef9c53ced6fb 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-huggingface/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["HuggingFaceEmbedding", "HuggingFaceInferenceAPIEmbedding", "HuggingFaceInferenceAPIEmbeddings"]
+contains_example = false
+import_path = "llama_index.embeddings.huggingface"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-instructor/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-instructor/pyproject.toml
index 60049f858f27e2c33a378efec048ff55404ade7a..132a57777d4533a5218f01a86ab64d0f66b7ff6a 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-instructor/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-instructor/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["InstructorEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.instructor"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-jinaai/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-jinaai/pyproject.toml
index 4a1d4480fc9aa2a9203297e1e27a0bd4ea47ccf2..78a40a5eba514afad18ca856af5aaeceb33fef3f 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-jinaai/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-jinaai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["JinaEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.jinaai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-langchain/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-langchain/pyproject.toml
index 3ed2f30a3300faf450b36fa210e6ee3fa0c8e30a..c66215aa795478569fed37845192b1011cc0109c 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-langchain/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-langchain/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LangchainEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.langchain"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-llm-rails/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-llm-rails/pyproject.toml
index 5f950d76fbaafbec7d79d05eb15042bca34a40da..c719d52151f2d91b2962fa69ce6dd919a4912347 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-llm-rails/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-llm-rails/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LLMRailsEmbedding", "LLMRailsEmbeddings"]
+contains_example = false
+import_path = "llama_index.embeddings.llm_rails"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-mistralai/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-mistralai/pyproject.toml
index 7f8ca474c91a63e62aca3714b450997025251f51..f4d36d13e2b4ab9152d53f3d404370b817e7cc84 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-mistralai/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-mistralai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MistralAIEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.mistralai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-nomic/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-nomic/pyproject.toml
index 240ece03d148bdaf52e28a96c6abf7f8dc0ba4bc..470a87befd2b354b4ba6fec65fab4048fb09e263 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-nomic/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-nomic/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["NomicEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.nomic"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-ollama/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-ollama/pyproject.toml
index eabe4e854d46c435142e20da90820443349b4869..417560b07bfae4117be6961a05dab272d2ff7287 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-ollama/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-ollama/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OllamaEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.ollama"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-openai/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-openai/pyproject.toml
index 5d31dfb6c8447d2135401f618603adda3a135129..a3d6626d28e1463fc3e3589f4808b6188fc1319a 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-openai/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAIEmbedding", "OpenAIEmbeddingMode", "OpenAIEmbeddingModeModel", "OpenAIEmbeddingModelType"]
+contains_example = false
+import_path = "llama_index.embeddings.openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-sagemaker-endpoint/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-sagemaker-endpoint/pyproject.toml
index 5784ac1c5e06b004bce15ff0fdd63d50ba902831..75cd0e7621a604a5730fef43d79c6b4c6b3b479e 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-sagemaker-endpoint/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-sagemaker-endpoint/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SageMakerEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.sagemaker_endpoint"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/pyproject.toml
index 29c017667cf9326527e16ae8e1cf64c2638a0e5a..fb031b31d30f214f135affdad7dc76f3199c837f 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-text-embeddings-inference/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TextEmbeddingsInference"]
+contains_example = false
+import_path = "llama_index.embeddings.text_embeddings_inference"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-together/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-together/pyproject.toml
index 9249d81d03383da1836ec6cc4e51a0e5d9af1bdd..b10681331b14859ea6fc3d43c31e86b91d594afe 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-together/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-together/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TogetherEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.together"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/pyproject.toml b/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/pyproject.toml
index bd0825f2c159549e15c35e5232869e33a77679d9..a73babfca115fff62216ab1f978fb92e87b1fb70 100644
--- a/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/pyproject.toml
+++ b/llama-index-integrations/embeddings/llama-index-embeddings-voyageai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["VoyageEmbedding"]
+contains_example = false
+import_path = "llama_index.embeddings.voyageai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/evaluation/llama-index-evaluation-tonic-validate/pyproject.toml b/llama-index-integrations/evaluation/llama-index-evaluation-tonic-validate/pyproject.toml
index b7ee84ba04c58a381aaf3dd26c5a676f5382a6c6..3b91d206bd7054baf898266511624be7ce64f003 100644
--- a/llama-index-integrations/evaluation/llama-index-evaluation-tonic-validate/pyproject.toml
+++ b/llama-index-integrations/evaluation/llama-index-evaluation-tonic-validate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AnswerConsistencyBinaryEvaluator", "AnswerConsistencyEvaluator", "AnswerSimilarityEvaluator", "AugmentationAccuracyEvaluator", "AugmentationPrecisionEvaluator", "RetrievalPrecisionEvaluator", "TonicValidateEvaluator"]
+contains_example = false
+import_path = "llama_index.evaluation.tonic_validate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/extractors/llama-index-extractors-entity/pyproject.toml b/llama-index-integrations/extractors/llama-index-extractors-entity/pyproject.toml
index f828ad32f987e165c91b60fa1891b394f03d5463..bde6a0c0781429cac6d11c606f2b5c64b6580e87 100644
--- a/llama-index-integrations/extractors/llama-index-extractors-entity/pyproject.toml
+++ b/llama-index-integrations/extractors/llama-index-extractors-entity/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["EntityExtractor"]
+contains_example = false
+import_path = "llama_index.extractors.entity"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/extractors/llama-index-extractors-marvin/pyproject.toml b/llama-index-integrations/extractors/llama-index-extractors-marvin/pyproject.toml
index c435b0018c0eb12f53c683d026738899db8c46dc..f6e2999c9da8b1a3924734445c84e5a8c1690211 100644
--- a/llama-index-integrations/extractors/llama-index-extractors-marvin/pyproject.toml
+++ b/llama-index-integrations/extractors/llama-index-extractors-marvin/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MarvinMetadataExtractor"]
+contains_example = false
+import_path = "llama_index.extractors.marvin"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-falkordb/pyproject.toml b/llama-index-integrations/graph_stores/llama-index-graph-stores-falkordb/pyproject.toml
index 0aaa733b7924462a9c305bf68fcd297d83bdfc27..0c2ed4a88b7a6c4d714225233094d39c578b52d8 100644
--- a/llama-index-integrations/graph_stores/llama-index-graph-stores-falkordb/pyproject.toml
+++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-falkordb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FalkorDBGraphStore"]
+contains_example = false
+import_path = "llama_index.graph_stores.falkordb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-kuzu/pyproject.toml b/llama-index-integrations/graph_stores/llama-index-graph-stores-kuzu/pyproject.toml
index 3a5cc00ef0945157de60f3cb7dde01e60e49dc89..5c7c58bfd0f69cc8dad9cc4a7de591b7a4087f9c 100644
--- a/llama-index-integrations/graph_stores/llama-index-graph-stores-kuzu/pyproject.toml
+++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-kuzu/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["KuzuGraphStore"]
+contains_example = false
+import_path = "llama_index.graph_stores.kuzu"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-nebula/pyproject.toml b/llama-index-integrations/graph_stores/llama-index-graph-stores-nebula/pyproject.toml
index e80fc3da81867f76fe664b353646e6da7516622d..b22a1ab6a0e92b9769efbb9ad46d9288459143dd 100644
--- a/llama-index-integrations/graph_stores/llama-index-graph-stores-nebula/pyproject.toml
+++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-nebula/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["NebulaGraphStore"]
+contains_example = false
+import_path = "llama_index.graph_stores.nebula"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/pyproject.toml b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/pyproject.toml
index d31aabaad8fa3c89db22538f70de80fe3fc10d7a..2ff2348c05bc310c77ee56aedba923a5147afbc8 100644
--- a/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/pyproject.toml
+++ b/llama-index-integrations/graph_stores/llama-index-graph-stores-neo4j/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Neo4jGraphStore"]
+contains_example = false
+import_path = "llama_index.graph_stores.neo4j"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/indices/llama-index-indices-managed-colbert/pyproject.toml b/llama-index-integrations/indices/llama-index-indices-managed-colbert/pyproject.toml
index e39286e906bb8cf1d85f3ac79cbe27a53ce93a6e..eddf4fc426fe0e2c4439e9c220a796f9b2e8b1d9 100644
--- a/llama-index-integrations/indices/llama-index-indices-managed-colbert/pyproject.toml
+++ b/llama-index-integrations/indices/llama-index-indices-managed-colbert/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ColbertIndex"]
+contains_example = false
+import_path = "llama_index.indices.managed.colbert"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/indices/llama-index-indices-managed-google/pyproject.toml b/llama-index-integrations/indices/llama-index-indices-managed-google/pyproject.toml
index f40843215798213155b9707971c982dd4ed4bd71..47bbb7279a51d64a36b841144de0e632033b7ee5 100644
--- a/llama-index-integrations/indices/llama-index-indices-managed-google/pyproject.toml
+++ b/llama-index-integrations/indices/llama-index-indices-managed-google/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GoogleIndex"]
+contains_example = false
+import_path = "llama_index.indices.managed.google"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/indices/llama-index-indices-managed-vectara/pyproject.toml b/llama-index-integrations/indices/llama-index-indices-managed-vectara/pyproject.toml
index 0f11eea4f2bcff631ee82e7639b11057e57e3e2b..4480ac24e9b8cda49e917e58645dc26d537ffde2 100644
--- a/llama-index-integrations/indices/llama-index-indices-managed-vectara/pyproject.toml
+++ b/llama-index-integrations/indices/llama-index-indices-managed-vectara/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["VectaraAutoRetriever", "VectaraIndex", "VectaraRetriever"]
+contains_example = false
+import_path = "llama_index.indices.managed.vectara"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/indices/llama-index-indices-managed-zilliz/pyproject.toml b/llama-index-integrations/indices/llama-index-indices-managed-zilliz/pyproject.toml
index a355f0a8becd960667469871dfc94078d7378de4..beff0686492740c3e254db2ee40dd8bc6d9b8092 100644
--- a/llama-index-integrations/indices/llama-index-indices-managed-zilliz/pyproject.toml
+++ b/llama-index-integrations/indices/llama-index-indices-managed-zilliz/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ZillizCloudPipelineIndex", "ZillizCloudPipelineRetriever"]
+contains_example = false
+import_path = "llama_index.indices.managed.zilliz"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-ai21/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-ai21/pyproject.toml
index d0ec869474de8aaf688cffe33c8d193db0b3e615..f6d75a9c2204ffa786a2a1514ee610387985e7d4 100644
--- a/llama-index-integrations/llms/llama-index-llms-ai21/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-ai21/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AI21"]
+contains_example = false
+import_path = "llama_index.llms.ai21"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-anthropic/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-anthropic/pyproject.toml
index b7156bc060ca1cea4813ee2f1074509f17921731..99242d4b31ff7c2375608f7ec85793404b44d49f 100644
--- a/llama-index-integrations/llms/llama-index-llms-anthropic/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-anthropic/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Anthropic"]
+contains_example = false
+import_path = "llama_index.llms.anthropic"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-anyscale/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-anyscale/pyproject.toml
index aef4f0a10f7e21db3d7c665760e1affdbaee34bc..687c3be554e2819b804fcce176a1a372a7500e29 100644
--- a/llama-index-integrations/llms/llama-index-llms-anyscale/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-anyscale/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Anyscale"]
+contains_example = false
+import_path = "llama_index.llms.anyscale"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-azure-openai/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-azure-openai/pyproject.toml
index 3cc2cb70c05b796b87f40bf5bc8a700e78fa3b7b..b3151bcf46318c9062ca5a84e7a521e52e4f0305 100644
--- a/llama-index-integrations/llms/llama-index-llms-azure-openai/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-azure-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AsyncAzureOpenAI", "AzureOpenAI", "SyncAzureOpenAI"]
+contains_example = false
+import_path = "llama_index.llms.azure_openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-bedrock/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-bedrock/pyproject.toml
index 5992c97d405589b543bc4f6fed95ce7d78f249a8..ddbc8bc2227c506fdc53bc21ce358f6f6ea02a0a 100644
--- a/llama-index-integrations/llms/llama-index-llms-bedrock/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-bedrock/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Bedrock", "completion_response_to_chat_response", "completion_with_retry"]
+contains_example = false
+import_path = "llama_index.llms.bedrock"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-clarifai/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-clarifai/pyproject.toml
index e5755e57379428672469ab1d4b79d1492be54e87..7b8804917bfa11f2856e6e2a83d392a92b570720 100644
--- a/llama-index-integrations/llms/llama-index-llms-clarifai/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-clarifai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Clarifai"]
+contains_example = false
+import_path = "llama_index.llms.clarifai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-cohere/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-cohere/pyproject.toml
index 9ce3547ad7aad7d8df1d0331da244643fd20e466..3ed1662c65f78b8d1df7b98447b94d3b957ae52a 100644
--- a/llama-index-integrations/llms/llama-index-llms-cohere/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-cohere/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Cohere"]
+contains_example = false
+import_path = "llama_index.llms.cohere"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-dashscope/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-dashscope/pyproject.toml
index b811e3dd880de799de25825d659839c3dc94a5b0..64c3118edf07cbe7e71db57064412ebfc08b721a 100644
--- a/llama-index-integrations/llms/llama-index-llms-dashscope/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-dashscope/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DashScope", "DashScopeGenerationModels"]
+contains_example = false
+import_path = "llama_index.llms.dashscope"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-everlyai/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-everlyai/pyproject.toml
index 650df63d6e257a960ce761440234016f90f392e6..b25347a726d1d47eb1e593c5b67412f94a4dbc03 100644
--- a/llama-index-integrations/llms/llama-index-llms-everlyai/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-everlyai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["EverlyAI"]
+contains_example = false
+import_path = "llama_index.llms.everlyai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-gemini/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-gemini/pyproject.toml
index 2e3ab9975f96585fa6bfcef166ce8034e753dfdf..5205c93513483295c510068eaee3e326d19e128e 100644
--- a/llama-index-integrations/llms/llama-index-llms-gemini/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-gemini/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Gemini"]
+contains_example = false
+import_path = "llama_index.llms.gemini"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-gradient/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-gradient/pyproject.toml
index 1056fa0bd27da1288b68ff01c3f340d19ced0d6c..81acbf8f664901325f47c4215ad83d1f85c9c89d 100644
--- a/llama-index-integrations/llms/llama-index-llms-gradient/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-gradient/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GradientBaseModelLLM", "GradientModelAdapterLLM"]
+contains_example = false
+import_path = "llama_index.llms.gradient"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-huggingface/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-huggingface/pyproject.toml
index 20987214023b4abd3d59c6b859ff95cfb9ec6fcd..195369811a2292398ab827c6ae21344f0d64399b 100644
--- a/llama-index-integrations/llms/llama-index-llms-huggingface/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-huggingface/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["HuggingFaceInferenceAPI", "HuggingFaceLLM"]
+contains_example = false
+import_path = "llama_index.llms.huggingface"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-konko/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-konko/pyproject.toml
index 2defb7be1deafa09f3fdb567c6011e6d7ca9b63d..726ab6b41259a3a7928aee480e7ea8c1916a36d1 100644
--- a/llama-index-integrations/llms/llama-index-llms-konko/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-konko/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Konko"]
+contains_example = false
+import_path = "llama_index.llms.konko"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-langchain/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-langchain/pyproject.toml
index f3a3e634d24bc00587f689add4ff6d2441479356..69768d121adac4a8eaa72c80d435215a1ce61d0a 100644
--- a/llama-index-integrations/llms/llama-index-llms-langchain/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-langchain/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LangChainLLM"]
+contains_example = false
+import_path = "llama_index.llms.langchain"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-litellm/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-litellm/pyproject.toml
index 0b6f810df6af29000e3737ef7b659ccd1d77d018..8165327c55ffb4f42ab6365e0d1b9ef90544893d 100644
--- a/llama-index-integrations/llms/llama-index-llms-litellm/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-litellm/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LiteLLM"]
+contains_example = false
+import_path = "llama_index.llms.litellm"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-llama-api/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-llama-api/pyproject.toml
index 02b75a8af4baf45637d0272bd350e574ed5836c1..11453a5f27b13f8fbdb4dc9f3e5eec5ffbd00f45 100644
--- a/llama-index-integrations/llms/llama-index-llms-llama-api/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-llama-api/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LlamaAPI"]
+contains_example = false
+import_path = "llama_index.llms.llama_api"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-llama-cpp/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-llama-cpp/pyproject.toml
index e7e6a654c84e2376fc88de695894f766f687d95e..c4756070983c7d4820da58040bfbc5d7da970a4f 100644
--- a/llama-index-integrations/llms/llama-index-llms-llama-cpp/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-llama-cpp/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LlamaCPP"]
+contains_example = false
+import_path = "llama_index.llms.llama_cpp"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-localai/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-localai/pyproject.toml
index 2e1b31084f8590e7945e17f23284e0e90bcdad9f..a20b45685578c9006ab06aae435d12a269833092 100644
--- a/llama-index-integrations/llms/llama-index-llms-localai/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-localai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LocalAI"]
+contains_example = false
+import_path = "llama_index.llms.localai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-mistralai/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-mistralai/pyproject.toml
index 708495e60a39869417fa1d2f862a7a0d79763b70..f293c4eed45c1b7fe9a7a826064b416b03a62d06 100644
--- a/llama-index-integrations/llms/llama-index-llms-mistralai/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-mistralai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MistralAI"]
+contains_example = false
+import_path = "llama_index.llms.mistralai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-monsterapi/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-monsterapi/pyproject.toml
index 3f6ef8d022c473cd6c3e87b2b0068c8424c08b98..27ed28aeaefa47c30d1bc02298cbc303c78f9b80 100644
--- a/llama-index-integrations/llms/llama-index-llms-monsterapi/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-monsterapi/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MonsterLLM"]
+contains_example = false
+import_path = "llama_index.llms.monsterapi"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-neutrino/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-neutrino/pyproject.toml
index 320de95c8ddc2d536841f01d6503a27962439b09..d268fa1af5ca480a258d6e690e5b008c1d9a6cf5 100644
--- a/llama-index-integrations/llms/llama-index-llms-neutrino/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-neutrino/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Neutrino"]
+contains_example = false
+import_path = "llama_index.llms.neutrino"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-nvidia-tensorrt/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-nvidia-tensorrt/pyproject.toml
index e661bd316152e1b8efbbd03cccf372e1b617ac48..a76c0adfc1576411d352da8cc739a157d0759f3c 100644
--- a/llama-index-integrations/llms/llama-index-llms-nvidia-tensorrt/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-nvidia-tensorrt/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LocalTensorRTLLM"]
+contains_example = false
+import_path = "llama_index.llms.nvidia_tensorrt"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-nvidia-triton/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-nvidia-triton/pyproject.toml
index 04cc6c2114adc5528f42039f010ca60297f5d30a..149181c01ec5f8115d9191dc57080e04db613b1a 100644
--- a/llama-index-integrations/llms/llama-index-llms-nvidia-triton/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-nvidia-triton/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["NvidiaTriton"]
+contains_example = false
+import_path = "llama_index.llms.nvidia_triton"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-ollama/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-ollama/pyproject.toml
index e728a69e8f6875ffa0b0a471cfe89e424d8ca793..dc714af1389b8e0c3f1dd323240c947de9cf3361 100644
--- a/llama-index-integrations/llms/llama-index-llms-ollama/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-ollama/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Ollama"]
+contains_example = false
+import_path = "llama_index.llms.ollama"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-openai-like/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-openai-like/pyproject.toml
index e884b2a87f55b451530da5ce7cd75679ac04cfc6..ca6cd0228e967bbda038456ea3bfab38d7a6c7fa 100644
--- a/llama-index-integrations/llms/llama-index-llms-openai-like/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-openai-like/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAILike"]
+contains_example = false
+import_path = "llama_index.llms.openai_like"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-openai/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-openai/pyproject.toml
index 924d4da2680aaa53c258d93d2a6440c31a537ba1..7360eec55d510644b980b63d360d7b58169b60b4 100644
--- a/llama-index-integrations/llms/llama-index-llms-openai/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AsyncOpenAI", "OpenAI", "SyncOpenAI", "Tokenizer"]
+contains_example = false
+import_path = "llama_index.llms.openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-openllm/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-openllm/pyproject.toml
index edef890f56a03f4d0c129074f5557332057f1c2b..a848cde96f6468fbd3c1036839cc5a94e15b82fd 100644
--- a/llama-index-integrations/llms/llama-index-llms-openllm/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-openllm/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenLLM", "OpenLLMAPI"]
+contains_example = false
+import_path = "llama_index.llms.openllm"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-openrouter/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-openrouter/pyproject.toml
index 96e11185122c49d3a749c03557cac15f0f11ef97..5828017e6fb2aaa0fe440dde73f472d5e8462581 100644
--- a/llama-index-integrations/llms/llama-index-llms-openrouter/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-openrouter/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenRouter"]
+contains_example = false
+import_path = "llama_index.llms.openrouter"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-palm/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-palm/pyproject.toml
index a043a0aee82df05f306fb7278f4e05cf7e3ab444..288926a8e96208f84a617fc7271ab8ae1de8e624 100644
--- a/llama-index-integrations/llms/llama-index-llms-palm/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-palm/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PaLM"]
+contains_example = false
+import_path = "llama_index.llms.palm"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-perplexity/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-perplexity/pyproject.toml
index 751c758b0648cb7630b1c32cb1cf71c903872609..e0a7597cab5e2fe382f68db165f000cd40b914a6 100644
--- a/llama-index-integrations/llms/llama-index-llms-perplexity/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-perplexity/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Perplexity"]
+contains_example = false
+import_path = "llama_index.llms.perplexity"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-portkey/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-portkey/pyproject.toml
index df2dd8b0e903de68af58f783252f745ab15cfe8c..8a15c57a9ddc76aac9e805d8f6cf1123cabef37b 100644
--- a/llama-index-integrations/llms/llama-index-llms-portkey/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-portkey/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Portkey"]
+contains_example = false
+import_path = "llama_index.llms.portkey"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-predibase/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-predibase/pyproject.toml
index 996d3a4b0a011f09df0f0af18cac8a61519f15ad..6dd781d68ea77e7748902c9a65a2d98ca10a9c06 100644
--- a/llama-index-integrations/llms/llama-index-llms-predibase/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-predibase/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PredibaseLLM"]
+contains_example = false
+import_path = "llama_index.llms.predibase"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-replicate/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-replicate/pyproject.toml
index c289a99d98ff1a9e9db60525b2515c0880acab12..c84a363dc4655d6cdee4e4382ece4b305dc99940 100644
--- a/llama-index-integrations/llms/llama-index-llms-replicate/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-replicate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Replicate"]
+contains_example = false
+import_path = "llama_index.llms.replicate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-rungpt/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-rungpt/pyproject.toml
index ab4b28716b866d61632dbdb7200f95a3585b6e03..642f215f4c0befe6a06d555c0473690f136bcf5b 100644
--- a/llama-index-integrations/llms/llama-index-llms-rungpt/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-rungpt/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RunGptLLM"]
+contains_example = false
+import_path = "llama_index.llms.rungpt"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-sagemaker-endpoint/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-sagemaker-endpoint/pyproject.toml
index 66e41e7fb4123d34a0a13863b9f1d56965e67447..8eef65817960554d9b5a052247d28a41e27f284b 100644
--- a/llama-index-integrations/llms/llama-index-llms-sagemaker-endpoint/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-sagemaker-endpoint/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SageMakerLLM"]
+contains_example = false
+import_path = "llama_index.llms.sagemaker_endpoint"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-together/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-together/pyproject.toml
index a8e624523aa1b36918f74d6a4155c55920872d13..1a0ea504bdb70cf0c74863b45fe8dae9efab088f 100644
--- a/llama-index-integrations/llms/llama-index-llms-together/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-together/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TogetherLLM"]
+contains_example = false
+import_path = "llama_index.llms.together"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-vertex/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-vertex/pyproject.toml
index dad70e0ddbfddba75da9c27cf436939d484821a8..bdc5238c17feccff2e1531192ea8261181990201 100644
--- a/llama-index-integrations/llms/llama-index-llms-vertex/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-vertex/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Vertex"]
+contains_example = false
+import_path = "llama_index.llms.vertex"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-vllm/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-vllm/pyproject.toml
index d07082038f3f8bcec22274e7b9c918d26f1b2cf9..bd5499519609c1c6e7f62d8e3eb5ef4b72ebd236 100644
--- a/llama-index-integrations/llms/llama-index-llms-vllm/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-vllm/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Vllm"]
+contains_example = false
+import_path = "llama_index.llms.vllm"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-watsonx/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-watsonx/pyproject.toml
index 0c5964c8b886767711fc319540a0b342955fb323..afe8e0879bd898799beb0ba1aa1ea40e28a2d9ef 100644
--- a/llama-index-integrations/llms/llama-index-llms-watsonx/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-watsonx/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WatsonX"]
+contains_example = false
+import_path = "llama_index.llms.watsonx"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/llms/llama-index-llms-xinference/pyproject.toml b/llama-index-integrations/llms/llama-index-llms-xinference/pyproject.toml
index 9b612a756187f8e1f61af2fc0ca2ef676000b55c..8474c5e8ba4d716a8157153d395c28e150f8283a 100644
--- a/llama-index-integrations/llms/llama-index-llms-xinference/pyproject.toml
+++ b/llama-index-integrations/llms/llama-index-llms-xinference/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Xinference"]
+contains_example = false
+import_path = "llama_index.llms.xinference"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-azure-openai/pyproject.toml b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-azure-openai/pyproject.toml
index f95cce2f6dba55175e73874e5e53a89d2f2d7f39..a54fa5a9ee6aa5a9b49cc5a4c515f65801e1948b 100644
--- a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-azure-openai/pyproject.toml
+++ b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-azure-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AzureOpenAIMultiModal"]
+contains_example = false
+import_path = "llama_index.multi_modal_llms.azure_openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-dashscope/pyproject.toml b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-dashscope/pyproject.toml
index 16a071e23d6ed9c6bbc34116eb9ae742abf016f4..c652e573a263524f9c3f03294b38ed1a1bc00cfa 100644
--- a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-dashscope/pyproject.toml
+++ b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-dashscope/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DashScopeMultiModal", "DashScopeMultiModalModels"]
+contains_example = false
+import_path = "llama_index.multi_modal_llms.dashscope"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-gemini/pyproject.toml b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-gemini/pyproject.toml
index ba92105161611f478af496c904c32840cc3801d2..3317f2c7b376f3ea76c96e94f60a28f09c99615d 100644
--- a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-gemini/pyproject.toml
+++ b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-gemini/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GeminiMultiModal"]
+contains_example = false
+import_path = "llama_index.multi_modal_llms.gemini"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-ollama/pyproject.toml b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-ollama/pyproject.toml
index 1dc96025f8fa4f3c40af4c38d78a42be419cbd8e..d7d28e5ba89e0764049464cbdc4e395ae28c8dac 100644
--- a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-ollama/pyproject.toml
+++ b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-ollama/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OllamaMultiModal"]
+contains_example = false
+import_path = "llama_index.multi_modal_llms.ollama"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-openai/pyproject.toml b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-openai/pyproject.toml
index 93d3ca701da44daced62d76d11d7a8c5478d9da0..208a6b20d39a0c8964ae7d1c3b7965d2817c30b6 100644
--- a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-openai/pyproject.toml
+++ b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAIMultiModal"]
+contains_example = false
+import_path = "llama_index.multi_modal_llms.openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-replicate-multi-modal/pyproject.toml b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-replicate-multi-modal/pyproject.toml
index 89b1df5f90c49fee274756df5123c6b14e19f55d..b6c40702b38b18b4ab22940e27fc94dd51e82152 100644
--- a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-replicate-multi-modal/pyproject.toml
+++ b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-replicate-multi-modal/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ReplicateMultiModal"]
+contains_example = false
+import_path = "llama_index.multi_modal_llms.replicate_multi_modal"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-replicate/pyproject.toml b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-replicate/pyproject.toml
index 8688b05a59b6c7ce2f965aaa297bcdf992ee0357..3fc38d96c1a29b722691a30bbc59172d50b41e1f 100644
--- a/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-replicate/pyproject.toml
+++ b/llama-index-integrations/multi_modal_llms/llama-index-multi-modal-llms-replicate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ReplicateMultiModal"]
+contains_example = false
+import_path = "llama_index.multi_modal_llms.replicate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/output_parsers/llama-index-output-parsers-guardrails/pyproject.toml b/llama-index-integrations/output_parsers/llama-index-output-parsers-guardrails/pyproject.toml
index 97165f56735d43563eaa726dac9aece27cdf3a8f..fa5333cb088c3ee4b7d2bc40fe9184807c78b425 100644
--- a/llama-index-integrations/output_parsers/llama-index-output-parsers-guardrails/pyproject.toml
+++ b/llama-index-integrations/output_parsers/llama-index-output-parsers-guardrails/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GuardrailsOutputParser"]
+contains_example = false
+import_path = "llama_index.output_parsers.guardrails"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/output_parsers/llama-index-output-parsers-langchain/pyproject.toml b/llama-index-integrations/output_parsers/llama-index-output-parsers-langchain/pyproject.toml
index c44a2b15d80974f714aa53e36130dbf980eb9a74..b22d12638a1fc90595ea86dc54dcaf601657396c 100644
--- a/llama-index-integrations/output_parsers/llama-index-output-parsers-langchain/pyproject.toml
+++ b/llama-index-integrations/output_parsers/llama-index-output-parsers-langchain/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LangchainOutputParser"]
+contains_example = false
+import_path = "llama_index.output_parsers.langchain"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/postprocessor/llama-index-postprocessor-cohere-rerank/pyproject.toml b/llama-index-integrations/postprocessor/llama-index-postprocessor-cohere-rerank/pyproject.toml
index 60b97f0f27f555b6e365be3bbef461d2e3eb3d70..6cb688f5234359344ac97840be57444a4055a9cd 100644
--- a/llama-index-integrations/postprocessor/llama-index-postprocessor-cohere-rerank/pyproject.toml
+++ b/llama-index-integrations/postprocessor/llama-index-postprocessor-cohere-rerank/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["CohereRerank"]
+contains_example = false
+import_path = "llama_index.postprocessor.cohere_rerank"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/postprocessor/llama-index-postprocessor-flag-embedding-reranker/pyproject.toml b/llama-index-integrations/postprocessor/llama-index-postprocessor-flag-embedding-reranker/pyproject.toml
index 6d869db6e7f2934869b3bd5bec6462c34e740929..4427bf30faeb135da3180e2be93e36de2ba04df3 100644
--- a/llama-index-integrations/postprocessor/llama-index-postprocessor-flag-embedding-reranker/pyproject.toml
+++ b/llama-index-integrations/postprocessor/llama-index-postprocessor-flag-embedding-reranker/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FlagEmbeddingReranker"]
+contains_example = false
+import_path = "llama_index.postprocessor.flag_embedding_reranker"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/postprocessor/llama-index-postprocessor-longllmlingua/pyproject.toml b/llama-index-integrations/postprocessor/llama-index-postprocessor-longllmlingua/pyproject.toml
index 33260d9221f694e0a529fd9038d234e659484bb3..9f64506a3688c4a42d09fdce12d56fb3b1f389ec 100644
--- a/llama-index-integrations/postprocessor/llama-index-postprocessor-longllmlingua/pyproject.toml
+++ b/llama-index-integrations/postprocessor/llama-index-postprocessor-longllmlingua/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LongLLMLinguaPostprocessor"]
+contains_example = false
+import_path = "llama_index.postprocessor.longllmlingua"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/postprocessor/llama-index-postprocessor-rankgpt-rerank/pyproject.toml b/llama-index-integrations/postprocessor/llama-index-postprocessor-rankgpt-rerank/pyproject.toml
index 43f8b911b2c5fed1521c58656d81848d7bf1e5f2..6eff45fc3bddba85b58de83c49541ad44475e9f6 100644
--- a/llama-index-integrations/postprocessor/llama-index-postprocessor-rankgpt-rerank/pyproject.toml
+++ b/llama-index-integrations/postprocessor/llama-index-postprocessor-rankgpt-rerank/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RankGPTRerank"]
+contains_example = false
+import_path = "llama_index.postprocessor.rankgpt_rerank"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/postprocessor/llama-index-postprocessor-sbert-rerank/pyproject.toml b/llama-index-integrations/postprocessor/llama-index-postprocessor-sbert-rerank/pyproject.toml
index 36a207121a16a8414469dcca4f2530f598da0b48..f7ed8f9abd7a88be27f39c24789ec42a3daddb48 100644
--- a/llama-index-integrations/postprocessor/llama-index-postprocessor-sbert-rerank/pyproject.toml
+++ b/llama-index-integrations/postprocessor/llama-index-postprocessor-sbert-rerank/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SentenceTransformerRerank"]
+contains_example = false
+import_path = "llama_index.postprocessor.sbert_rerank"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/program/llama-index-program-evaporate/pyproject.toml b/llama-index-integrations/program/llama-index-program-evaporate/pyproject.toml
index b43e978544f22ebbaff0f59581482fcd89e428b2..0d5c79c5f0f00fc828834debbb72da9f223e69e5 100644
--- a/llama-index-integrations/program/llama-index-program-evaporate/pyproject.toml
+++ b/llama-index-integrations/program/llama-index-program-evaporate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BaseEvaporateProgram", "DFEvaporateProgram"]
+contains_example = false
+import_path = "llama_index.program.evaporate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/program/llama-index-program-guidance/pyproject.toml b/llama-index-integrations/program/llama-index-program-guidance/pyproject.toml
index 3f41316a969b80af6e8701c1896f87e5168c847e..e8eab0dc7acf4371d599c0e123797846dfb5a1f4 100644
--- a/llama-index-integrations/program/llama-index-program-guidance/pyproject.toml
+++ b/llama-index-integrations/program/llama-index-program-guidance/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GuidancePydanticProgram"]
+contains_example = false
+import_path = "llama_index.program.guidance"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/program/llama-index-program-lmformatenforcer/pyproject.toml b/llama-index-integrations/program/llama-index-program-lmformatenforcer/pyproject.toml
index 683d06ad2ac1776f56e949aa8c546f2e7e1d2c22..9cd4c8ecc8e93f38d5e53991f8e0c11f28bc1a65 100644
--- a/llama-index-integrations/program/llama-index-program-lmformatenforcer/pyproject.toml
+++ b/llama-index-integrations/program/llama-index-program-lmformatenforcer/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LMFormatEnforcerPydanticProgram"]
+contains_example = false
+import_path = "llama_index.program.lmformatenforcer"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/program/llama-index-program-openai/pyproject.toml b/llama-index-integrations/program/llama-index-program-openai/pyproject.toml
index b43e4752eaeb7f3fb27e2bc49f151ec2bf3ade63..f9319f285b9f0942f2fb67ab6db6a63b4ad9eba2 100644
--- a/llama-index-integrations/program/llama-index-program-openai/pyproject.toml
+++ b/llama-index-integrations/program/llama-index-program-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAIPydanticProgram"]
+contains_example = false
+import_path = "llama_index.program.openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/question_gen/llama-index-question-gen-guidance/pyproject.toml b/llama-index-integrations/question_gen/llama-index-question-gen-guidance/pyproject.toml
index 924b9c2d50fbf41e70e4489c9294acfba489a6f1..b073ad30396f88c1316ed6b17909d5c1c5d65781 100644
--- a/llama-index-integrations/question_gen/llama-index-question-gen-guidance/pyproject.toml
+++ b/llama-index-integrations/question_gen/llama-index-question-gen-guidance/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GuidanceQuestionGenerator"]
+contains_example = false
+import_path = "llama_index.question_gen.guidance"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/question_gen/llama-index-question-gen-openai/pyproject.toml b/llama-index-integrations/question_gen/llama-index-question-gen-openai/pyproject.toml
index 0ea1a7b1f6417c613931ac4ac082e8c233b55ba2..f51fba175f5f00862370a83ad1cd1b8eff1b44f5 100644
--- a/llama-index-integrations/question_gen/llama-index-question-gen-openai/pyproject.toml
+++ b/llama-index-integrations/question_gen/llama-index-question-gen-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAIQuestionGenerator"]
+contains_example = false
+import_path = "llama_index.question_gen.openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-agent-search/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-agent-search/pyproject.toml
index 834e3f3c647d4385f20d19b018f407a7b3f098c2..c8b68fe2a9c6931367fda92aaff816fd38aafad8 100644
--- a/llama-index-integrations/readers/llama-index-readers-agent-search/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-agent-search/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AgentSearchReader"]
+contains_example = false
+import_path = "llama_index.readers.agent_search"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airbyte-cdk/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airbyte-cdk/pyproject.toml
index 550dcbacd75189fd2dea3687bf661b3fbf8f4a50..1f482558988db71d36a03a411dc096f352792708 100644
--- a/llama-index-integrations/readers/llama-index-readers-airbyte-cdk/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airbyte-cdk/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirbyteCDKReader"]
+contains_example = false
+import_path = "llama_index.readers.airbyte_cdk"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airbyte-gong/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airbyte-gong/pyproject.toml
index 1e068177f3fd3b213a51311bfb82323b958b0f52..3aa938101528b5e3d9f13ea08554218efe3fa817 100644
--- a/llama-index-integrations/readers/llama-index-readers-airbyte-gong/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airbyte-gong/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirbyteGongReader"]
+contains_example = false
+import_path = "llama_index.readers.airbyte_gong"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airbyte-hubspot/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airbyte-hubspot/pyproject.toml
index b7591f8649e74b7810cd948c375fc017b883fa10..cf725b9def2e65adc45f918cd744ad7fbd5f19f1 100644
--- a/llama-index-integrations/readers/llama-index-readers-airbyte-hubspot/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airbyte-hubspot/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirbyteHubspotReader"]
+contains_example = false
+import_path = "llama_index.readers.airbyte_hubspot"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airbyte-salesforce/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airbyte-salesforce/pyproject.toml
index 30be5ace469b0d3e4e2762858b2b308ccca94be5..3f3e5440f9bd90892aafc2e31b32a152da63a747 100644
--- a/llama-index-integrations/readers/llama-index-readers-airbyte-salesforce/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airbyte-salesforce/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirbyteSalesforceReader"]
+contains_example = false
+import_path = "llama_index.readers.airbyte_salesforce"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airbyte-shopify/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airbyte-shopify/pyproject.toml
index b58c2ed799bd08f166ee7a25173d69d8a43bfb00..6d109f20a579ef8c028d3403f637afb9062f7c53 100644
--- a/llama-index-integrations/readers/llama-index-readers-airbyte-shopify/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airbyte-shopify/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirbyteShopifyReader"]
+contains_example = false
+import_path = "llama_index.readers.airbyte_shopify"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airbyte-stripe/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airbyte-stripe/pyproject.toml
index ceaf683b84b33b3cf2156994d9fe88f36570b67c..2c3c773bd347716eac34a864b28d0256926301d0 100644
--- a/llama-index-integrations/readers/llama-index-readers-airbyte-stripe/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airbyte-stripe/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirbyteStripeReader"]
+contains_example = false
+import_path = "llama_index.readers.airbyte_stripe"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airbyte-typeform/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airbyte-typeform/pyproject.toml
index 5f0dea9a76c7c6b4b01ca49344f8a75cfdfc9a3f..d9eb85b6de6ff18b98e15dabd5fab069aeb4b27e 100644
--- a/llama-index-integrations/readers/llama-index-readers-airbyte-typeform/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airbyte-typeform/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirbyteTypeformReader"]
+contains_example = false
+import_path = "llama_index.readers.airbyte_typeform"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airbyte-zendesk-support/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airbyte-zendesk-support/pyproject.toml
index 44254fdbf5b4beb83e7a0f99e7e0c00b216894fd..7a8ba2b338f24cdd4c3ad7de7409eea371d41af0 100644
--- a/llama-index-integrations/readers/llama-index-readers-airbyte-zendesk-support/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airbyte-zendesk-support/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirbyteZendeskSupportReader"]
+contains_example = false
+import_path = "llama_index.readers.airbyte_zendesk_support"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-airtable/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-airtable/pyproject.toml
index 2fc4865bc2cefdd14b5592102e928adad08f7c1d..33bc09ff2f122d5e05438c0600205425da3bd743 100644
--- a/llama-index-integrations/readers/llama-index-readers-airtable/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-airtable/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AirtableReader"]
+contains_example = false
+import_path = "llama_index.readers.airtable"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-apify/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-apify/pyproject.toml
index 467dbed728f33a23556534481ae038062523d9ef..85ac0ef71fcb18f196e4caaebae74b7c707c074f 100644
--- a/llama-index-integrations/readers/llama-index-readers-apify/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-apify/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ApifyActor", "ApifyDataset"]
+contains_example = false
+import_path = "llama_index.readers.apify"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-arango-db/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-arango-db/pyproject.toml
index 8ca4ea072edb8dfacfa49060786692b34dc41a05..ba26d095e11d65f7ecb3feadfbfe78f61469acd3 100644
--- a/llama-index-integrations/readers/llama-index-readers-arango-db/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-arango-db/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SimpleArangoDBReader"]
+contains_example = false
+import_path = "llama_index.readers.arango_db"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-asana/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-asana/pyproject.toml
index dad2034cb7131f666788b31b71c820ef97e95c56..47c783aca407c26da4a789ddfca337a7e2945284 100644
--- a/llama-index-integrations/readers/llama-index-readers-asana/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-asana/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AsanaReader"]
+contains_example = false
+import_path = "llama_index.readers.asana"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-assemblyai/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-assemblyai/pyproject.toml
index 796e28f3e4cab8f0c529258c23e5bc3acb5debdc..2cce51c245fd834312c7596d573d08354c5bc4a6 100644
--- a/llama-index-integrations/readers/llama-index-readers-assemblyai/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-assemblyai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AssemblyAIAudioTranscriptReader"]
+contains_example = false
+import_path = "llama_index.readers.assemblyai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-astra-db/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-astra-db/pyproject.toml
index c11e43e92e525a0bb17d221d9115d8a6dcd48042..d05aa30fe5cde0b76634b7824883bd513abaa3f1 100644
--- a/llama-index-integrations/readers/llama-index-readers-astra-db/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-astra-db/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AstraDBReader"]
+contains_example = false
+import_path = "llama_index.readers.astra_db"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-athena/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-athena/pyproject.toml
index 4ce299849781ad67c4102c597fe0f30d662d7537..4a6220d0cc479f748ad7f0d773a1c1f248d5ef9f 100644
--- a/llama-index-integrations/readers/llama-index-readers-athena/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-athena/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AthenaReader"]
+contains_example = false
+import_path = "llama_index.readers.athena"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-awadb/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-awadb/pyproject.toml
index 93b46af9341e34702d20d590083a7209e1616940..d945a5577df30e0b5cdd5bc0fc25b98d15c2985a 100644
--- a/llama-index-integrations/readers/llama-index-readers-awadb/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-awadb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AwadbReader"]
+contains_example = false
+import_path = "llama_index.readers.awadb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-azcognitive-search/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-azcognitive-search/pyproject.toml
index 2919b1b04d185a637097d250b3135d9d97232c46..5b9218305a925c8f6c89a1d7106fd54aa6202fab 100644
--- a/llama-index-integrations/readers/llama-index-readers-azcognitive-search/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-azcognitive-search/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AzCognitiveSearchReader"]
+contains_example = false
+import_path = "llama_index.readers.azcognitive_search"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-azstorage-blob/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-azstorage-blob/pyproject.toml
index 72e26ddaaac2be0ff0ffadd0002655ee958d6d49..3c49a03e78956fd21c55acb8fea74fafce0a2e1d 100644
--- a/llama-index-integrations/readers/llama-index-readers-azstorage-blob/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-azstorage-blob/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AzStorageBlobReader"]
+contains_example = false
+import_path = "llama_index.readers.azstorage_blob"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-bagel/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-bagel/pyproject.toml
index 080d6a387fa46be8a6625720d77ca91268f45d2f..3b0adb92ad8f4fb380339b4c44cd824a7f229b44 100644
--- a/llama-index-integrations/readers/llama-index-readers-bagel/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-bagel/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BagelReader"]
+contains_example = false
+import_path = "llama_index.readers.bagel"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-bilibili/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-bilibili/pyproject.toml
index 49780ae2e5e3cec908764849053f50f64ca56692..830e327bbe113df1882f39664d0d9e9a587d9543 100644
--- a/llama-index-integrations/readers/llama-index-readers-bilibili/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-bilibili/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BilibiliTranscriptReader"]
+contains_example = false
+import_path = "llama_index.readers.bilibili"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-bitbucket/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-bitbucket/pyproject.toml
index 911683513a5724bd1350f8085c359a51fe25c69a..3321d7e1941ff6a578207aa9c300c57612b28024 100644
--- a/llama-index-integrations/readers/llama-index-readers-bitbucket/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-bitbucket/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BitbucketReader"]
+contains_example = false
+import_path = "llama_index.readers.bitbucket"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-boarddocs/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-boarddocs/pyproject.toml
index e4fdd383548cd1ca37aaaa424f972bab536e0246..3d411f995415a329033e12e976d75e5471666b74 100644
--- a/llama-index-integrations/readers/llama-index-readers-boarddocs/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-boarddocs/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BoardDocsReader"]
+contains_example = false
+import_path = "llama_index.readers.boarddocs"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-chatgpt-plugin/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-chatgpt-plugin/pyproject.toml
index 6444cf3e7c3a91482ffc4f8285d85828817479ba..19e0fc0c84019ae929d7acda15bdeae2c174d4ef 100644
--- a/llama-index-integrations/readers/llama-index-readers-chatgpt-plugin/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-chatgpt-plugin/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ChatGPTRetrievalPluginReader"]
+contains_example = false
+import_path = "llama_index.readers.chatgpt_plugin"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-chroma/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-chroma/pyproject.toml
index 4420b023a49300c97de1275fdbe33beb09f3dbd5..d0addb6323ee5825e2b9a2cba7670c7b2e6ab4b5 100644
--- a/llama-index-integrations/readers/llama-index-readers-chroma/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-chroma/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ChromaReader"]
+contains_example = false
+import_path = "llama_index.readers.chroma"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-confluence/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-confluence/pyproject.toml
index df198bc5e0f5b639187b000ed31be46fcdf98d66..83250919a2806612411715f2a3296b49d7677409 100644
--- a/llama-index-integrations/readers/llama-index-readers-confluence/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-confluence/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ConfluenceReader"]
+contains_example = false
+import_path = "llama_index.readers.confluence"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-couchbase/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-couchbase/pyproject.toml
index b3882f482c196da13203905092e1930e02415d35..1e03fcd4c37cdcf48bb6b2eecc3005e0061d6165 100644
--- a/llama-index-integrations/readers/llama-index-readers-couchbase/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-couchbase/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["CouchbaseReader"]
+contains_example = false
+import_path = "llama_index.readers.couchbase"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-couchdb/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-couchdb/pyproject.toml
index 067c552b5624f403b9efb97600eda53533724884..a2af44ea7d8ecb6861a47ab4ff3339527e353e70 100644
--- a/llama-index-integrations/readers/llama-index-readers-couchdb/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-couchdb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SimpleCouchDBReader"]
+contains_example = false
+import_path = "llama_index.readers.couchdb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-dad-jokes/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-dad-jokes/pyproject.toml
index 144756e501a4816e3092dd240998c84e1835afcc..0b6cdc41bd45a24b59de08060a4d838ae9ddf684 100644
--- a/llama-index-integrations/readers/llama-index-readers-dad-jokes/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-dad-jokes/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DadJokesReader"]
+contains_example = false
+import_path = "llama_index.readers.dad_jokes"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-dashvector/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-dashvector/pyproject.toml
index 1537ca64ac9ed0e0945b21db18da02cd50d9709b..18eb4bc12fc2c074532a0008a89bbca6891c7559 100644
--- a/llama-index-integrations/readers/llama-index-readers-dashvector/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-dashvector/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DashVectorReader"]
+contains_example = false
+import_path = "llama_index.readers.dashvector"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-database/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-database/pyproject.toml
index 30bafa4581087605940ecc185b7a9c6e8b79997c..a7acf541612dd65add8303b0c963c141c5d342f1 100644
--- a/llama-index-integrations/readers/llama-index-readers-database/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-database/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DatabaseReader"]
+contains_example = false
+import_path = "llama_index.readers.database"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-deeplake/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-deeplake/pyproject.toml
index c7f13c0ed378c510e8dd7e0faa2d9fcb19d794c1..5f93be60e4f17ca23ba7c2e40d6b1853d16bb3b3 100644
--- a/llama-index-integrations/readers/llama-index-readers-deeplake/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-deeplake/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DeepLakeReader"]
+contains_example = false
+import_path = "llama_index.readers.deeplake"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-discord/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-discord/pyproject.toml
index 7d5079b394929bb5ceeb46e2cef8c4095ff2cd1d..2725935de63782c0e8222cd9e2153c09baf5bf11 100644
--- a/llama-index-integrations/readers/llama-index-readers-discord/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-discord/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DiscordReader"]
+contains_example = false
+import_path = "llama_index.readers.discord"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-docstring-walker/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-docstring-walker/pyproject.toml
index 64f83e5f5427c3db9b8031d0dd738eb886eb1842..00ead8f7366feae70f8ad5a37d6052581eeecb7c 100644
--- a/llama-index-integrations/readers/llama-index-readers-docstring-walker/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-docstring-walker/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DocstringWalker"]
+contains_example = false
+import_path = "llama_index.readers.docstring_walker"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-docugami/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-docugami/pyproject.toml
index ac4315007761ca0c3c1b83393374ef83302d5fb6..eb2ce13f78c51b7fdceac36daeca14c71dc2f187 100644
--- a/llama-index-integrations/readers/llama-index-readers-docugami/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-docugami/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DocugamiReader"]
+contains_example = false
+import_path = "llama_index.readers.docugami"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-earnings-call-transcript/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-earnings-call-transcript/pyproject.toml
index cd460552df076f14329a9e000bc36171273fae7f..2bb3398c0e16789605c2ac382e48c9f08e0e0bd2 100644
--- a/llama-index-integrations/readers/llama-index-readers-earnings-call-transcript/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-earnings-call-transcript/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["EarningsCallTranscript"]
+contains_example = false
+import_path = "llama_index.readers.earnings_call_transcript"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-elasticsearch/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-elasticsearch/pyproject.toml
index f51ccbcfb6714bc1cf205749db91d6fe811655c6..c018ddbb1fa8a54f0873854e4cb07c6603b4467d 100644
--- a/llama-index-integrations/readers/llama-index-readers-elasticsearch/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-elasticsearch/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ElasticsearchReader"]
+contains_example = false
+import_path = "llama_index.readers.elasticsearch"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-faiss/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-faiss/pyproject.toml
index 5659d1fead65c1535661664e246e5f33c76fe36d..ad43faf177dd1e4e8bb76f36cc155d2aaffb83bb 100644
--- a/llama-index-integrations/readers/llama-index-readers-faiss/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-faiss/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FaissReader"]
+contains_example = false
+import_path = "llama_index.readers.faiss"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-feedly-rss/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-feedly-rss/pyproject.toml
index 72c914af2a8c812f9174edc47d686ff624e03108..b0425b4d9b3fb4820df61e25ff866e73e895446e 100644
--- a/llama-index-integrations/readers/llama-index-readers-feedly-rss/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-feedly-rss/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FeedlyRssReader"]
+contains_example = false
+import_path = "llama_index.readers.feedly_rss"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-feishu-docs/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-feishu-docs/pyproject.toml
index 4ac3487668d640f4c34a597cc71f9c7646d6979f..a775a21de08a661b401450973d9e7142bb30656f 100644
--- a/llama-index-integrations/readers/llama-index-readers-feishu-docs/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-feishu-docs/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FeishuDocsReader"]
+contains_example = false
+import_path = "llama_index.readers.feishu_docs"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-file/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-file/pyproject.toml
index 6544aae41d1fcb398b232bfa2ded707bb567f54e..18e3075b13585fedc640ded03b4340a673b9ef4f 100644
--- a/llama-index-integrations/readers/llama-index-readers-file/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-file/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DocxReader", "EpubReader", "FlatReader", "HTMLTagReader", "HWPReader", "IPYNBReader", "ImageCaptionReader", "ImageReader", "ImageTabularChartReader", "ImageVisionLLMReader", "MarkdownReader", "MboxReader", "PDFReader", "PagedCSVReader", "PandasCSVReader", "PptxReader", "PyMuPDFReader", "UnstructuredReader", "VideoAudioReader", "XMLReader"]
+contains_example = false
+import_path = "llama_index.readers.file"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-firebase-realtimedb/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-firebase-realtimedb/pyproject.toml
index fded90543cc29178b3185889184172151eedf135..07327ed2f5fe4a8673c30b1023238fcb7a4e1b38 100644
--- a/llama-index-integrations/readers/llama-index-readers-firebase-realtimedb/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-firebase-realtimedb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FirebaseRealtimeDatabaseReader"]
+contains_example = false
+import_path = "llama_index.readers.firebase_realtimedb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-firestore/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-firestore/pyproject.toml
index 559f7545188cc5dad92bf7f076cb72201de3184f..779814c5592d37919438735f167c73db92cfff52 100644
--- a/llama-index-integrations/readers/llama-index-readers-firestore/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-firestore/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FirestoreReader"]
+contains_example = false
+import_path = "llama_index.readers.firestore"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-genius/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-genius/pyproject.toml
index 2c19c3244d661f3095728241e64d5037362d7d83..8cc407bfcbd74ca15e72a42c0f73f86ff059e882 100644
--- a/llama-index-integrations/readers/llama-index-readers-genius/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-genius/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GeniusReader"]
+contains_example = false
+import_path = "llama_index.readers.genius"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-github/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-github/pyproject.toml
index 386eae037658cd997ab889f23efee7161e9451de..285c39aee3d675f56af48272d1308c94579cd39e 100644
--- a/llama-index-integrations/readers/llama-index-readers-github/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-github/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GitHubIssuesClient", "GitHubRepositoryCollaboratorsReader", "GitHubRepositoryIssuesReader", "GithubClient", "GithubRepositoryReader"]
+contains_example = false
+import_path = "llama_index.readers.github"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-google/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-google/pyproject.toml
index 62fea974052061995d74a034c9ab400c6e955e54..2d9e1728df14340be31aab04cad19d81ea9b17e6 100644
--- a/llama-index-integrations/readers/llama-index-readers-google/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-google/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GmailReader", "GoogleCalendarReader", "GoogleDocsReader", "GoogleDriveReader", "GoogleKeepReader", "GoogleSheetsReader"]
+contains_example = false
+import_path = "llama_index.readers.google"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-gpt-repo/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-gpt-repo/pyproject.toml
index 0d14a36629af68d58131ed72c230445a746929c8..f5591ada0685d5047e6720247d93e49b8b2a9935 100644
--- a/llama-index-integrations/readers/llama-index-readers-gpt-repo/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-gpt-repo/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GPTRepoReader", "get_ignore_list", "process_repository", "should_ignore"]
+contains_example = false
+import_path = "llama_index.readers.gpt_repo"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-graphdb-cypher/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-graphdb-cypher/pyproject.toml
index e2d865ea9da1518c586e5519a1af48deef4e5ad1..1aa7c96ed60d98e3f215b8fb9fde74a660a040c8 100644
--- a/llama-index-integrations/readers/llama-index-readers-graphdb-cypher/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-graphdb-cypher/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GraphDBCypherReader"]
+contains_example = false
+import_path = "llama_index.readers.graphdb_cypher"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-graphql/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-graphql/pyproject.toml
index 301be9a51ce984fd39fef674b4a2f384a9772ccf..c071f14ac0df19728951f039095e0df16ffef36f 100644
--- a/llama-index-integrations/readers/llama-index-readers-graphql/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-graphql/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GraphQLReader"]
+contains_example = false
+import_path = "llama_index.readers.graphql"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-guru/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-guru/pyproject.toml
index c910a392ef7dcb6de19e00803204ed13a13b214a..724c8b2cc30d341d0ac36217e5da97b1311d641a 100644
--- a/llama-index-integrations/readers/llama-index-readers-guru/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-guru/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GuruReader"]
+contains_example = false
+import_path = "llama_index.readers.guru"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-hatena-blog/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-hatena-blog/pyproject.toml
index c9fc40c96366fee4fdfe6e3443acf760e10bbfd6..86e6c4244c6c8db8e4d33a427e962436816ad240 100644
--- a/llama-index-integrations/readers/llama-index-readers-hatena-blog/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-hatena-blog/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["HatenaBlogReader"]
+contains_example = false
+import_path = "llama_index.readers.hatena_blog"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-hive/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-hive/pyproject.toml
index 77d43b95f02a67f0cf5d5aca9788473f0d05368d..52083c0abd46d46f9adbb18eb9341a561e204119 100644
--- a/llama-index-integrations/readers/llama-index-readers-hive/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-hive/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["HiveReader"]
+contains_example = false
+import_path = "llama_index.readers.hive"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-hubspot/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-hubspot/pyproject.toml
index 599aad184c7eabd299e9b470ac29a39347e195b6..a233ab12162f802c0ce7418dd984b0ec48788c5c 100644
--- a/llama-index-integrations/readers/llama-index-readers-hubspot/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-hubspot/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["HubspotReader"]
+contains_example = false
+import_path = "llama_index.readers.hubspot"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-huggingface-fs/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-huggingface-fs/pyproject.toml
index a38155f39c44a0dcbcd3561c10cb0cf5b0bec038..f0b9f466207806d13060f49f547222fe668a91a2 100644
--- a/llama-index-integrations/readers/llama-index-readers-huggingface-fs/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-huggingface-fs/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["HuggingFaceFSReader"]
+contains_example = false
+import_path = "llama_index.readers.huggingface_fs"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-hwp/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-hwp/pyproject.toml
index 6b86c72bbe2bd0ccccd57e32a7e91f1e9478ecfc..c381ded7e03bfea8ae0bab5b8f9b536eb4a8751c 100644
--- a/llama-index-integrations/readers/llama-index-readers-hwp/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-hwp/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["HWPReader"]
+contains_example = false
+import_path = "llama_index.readers.hwp"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-imdb-review/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-imdb-review/pyproject.toml
index c3f8add3804911dbdf95ea8a4b91cfa8ff55aa0d..84464aee2e5a8344c225efb2d4ba5dd79be00ad6 100644
--- a/llama-index-integrations/readers/llama-index-readers-imdb-review/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-imdb-review/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["IMDBReviews"]
+contains_example = false
+import_path = "llama_index.readers.imdb_review"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-intercom/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-intercom/pyproject.toml
index 8aacb95f2bb0050269fdf85bd2db7a2fac1c5520..c5b9da709d3aab44e7bd8e2cdbcf37e14240f251 100644
--- a/llama-index-integrations/readers/llama-index-readers-intercom/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-intercom/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["IntercomReader"]
+contains_example = false
+import_path = "llama_index.readers.intercom"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-jaguar/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-jaguar/pyproject.toml
index f0ad4bdddafd08112ce893724464d261518b1656..ca494af728ac5f97cdd4ec00ec12eb44c21acccb 100644
--- a/llama-index-integrations/readers/llama-index-readers-jaguar/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-jaguar/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["JaguarReader"]
+contains_example = false
+import_path = "llama_index.readers.jaguar"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-jira/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-jira/pyproject.toml
index 3ee13a4d7f745a15e1f7305224b3e36eaccc3371..070ad1e8b55a68c2fe9097e39699e993665ad9ab 100644
--- a/llama-index-integrations/readers/llama-index-readers-jira/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-jira/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["JiraReader"]
+contains_example = false
+import_path = "llama_index.readers.jira"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-joplin/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-joplin/pyproject.toml
index 12461e3215187e16275e7f35bcbeb31c2559c796..da4155b075a5a09be2aede4212105ceb73973136 100644
--- a/llama-index-integrations/readers/llama-index-readers-joplin/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-joplin/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["JoplinReader", "LINK_NOTE_TEMPLATE"]
+contains_example = false
+import_path = "llama_index.readers.joplin"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-json/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-json/pyproject.toml
index 30dbdc6b1e3343858aeaa424c26223afb99dc393..69d3825cccbca5a52b804bfd4673a182720090b6 100644
--- a/llama-index-integrations/readers/llama-index-readers-json/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-json/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["JSONReader"]
+contains_example = false
+import_path = "llama_index.readers.json"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-kaltura/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-kaltura/pyproject.toml
index 5e4b1eabe536045cc3460b289a1b919d6a36a48f..edb9e8fd1bf3330e2ad179d8d8a48bd908491e07 100644
--- a/llama-index-integrations/readers/llama-index-readers-kaltura/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-kaltura/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["KalturaESearchReader"]
+contains_example = false
+import_path = "llama_index.readers.kaltura_esearch"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-kibela/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-kibela/pyproject.toml
index 5b74a71404be593ebe44228cc7ebc31bc2a32528..d6d20aac3e77c23d56444a91185c146dc7122833 100644
--- a/llama-index-integrations/readers/llama-index-readers-kibela/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-kibela/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["KibelaReader"]
+contains_example = false
+import_path = "llama_index.readers.kibela"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-lilac/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-lilac/pyproject.toml
index 977c3aae85c4939992d0ddc9e6c241fb42d1791f..9cba45892e5176960edb1d3a38c7c9a6937f28d9 100644
--- a/llama-index-integrations/readers/llama-index-readers-lilac/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-lilac/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LilacReader"]
+contains_example = false
+import_path = "llama_index.readers.lilac"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-linear/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-linear/pyproject.toml
index 8ba14edeef6535ab555770d301060e0ceffc81c5..3fceea78bcd55913b3a5ad34b28a996f91c8d105 100644
--- a/llama-index-integrations/readers/llama-index-readers-linear/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-linear/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LinearReader"]
+contains_example = false
+import_path = "llama_index.readers.linear"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-macrometa-gdn/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-macrometa-gdn/pyproject.toml
index b16cf7da0383d825d7fea70d125462fd74bbc09d..8ee6143ff5eab53ca9cdc7a3af2798521ecb9d2f 100644
--- a/llama-index-integrations/readers/llama-index-readers-macrometa-gdn/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-macrometa-gdn/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MacrometaGDNReader"]
+contains_example = false
+import_path = "llama_index.readers.macrometa_gdn"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-make-com/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-make-com/pyproject.toml
index 2fcd7e71d5bb3e131e923a71b41b3ee2e1846cf8..1fa836b765fb2c3d194a616ad1c426cf9e945c1b 100644
--- a/llama-index-integrations/readers/llama-index-readers-make-com/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-make-com/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MakeWrapper"]
+contains_example = false
+import_path = "llama_index.readers.make_com"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-mangadex/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-mangadex/pyproject.toml
index 7a2dd186e22ff550dc65d2c782375067d84488bc..0da35346cb7fc40c912f44e6fb83ec8546a27ce2 100644
--- a/llama-index-integrations/readers/llama-index-readers-mangadex/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-mangadex/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MangaDexReader"]
+contains_example = false
+import_path = "llama_index.readers.mangadex"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-mangoapps-guides/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-mangoapps-guides/pyproject.toml
index 0258dca0ce7abf5b983a3d68cde518ece007bf52..e6c262b5a312f24a2ad684dba230976981f87caa 100644
--- a/llama-index-integrations/readers/llama-index-readers-mangoapps-guides/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-mangoapps-guides/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MangoppsGuidesReader"]
+contains_example = false
+import_path = "llama_index.readers.mangoapps_guides"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-maps/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-maps/pyproject.toml
index 90bf53314cdd5ef678de86d71481689b3155e248..434c58b7dc06cb294c5ae17acffc67c59c75680c 100644
--- a/llama-index-integrations/readers/llama-index-readers-maps/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-maps/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenMap"]
+contains_example = false
+import_path = "llama_index.readers.maps"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-mbox/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-mbox/pyproject.toml
index 57b1b3aa15d861a70aeaad12d25325b4b4599af2..edc2c0ba50e6659b1b4d0d1e48c6482a11ee941b 100644
--- a/llama-index-integrations/readers/llama-index-readers-mbox/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-mbox/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MboxReader"]
+contains_example = false
+import_path = "llama_index.readers.mbox"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-memos/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-memos/pyproject.toml
index b2afc084ff9b86f39d6890a87ccc43a802b30dc4..938f4807ccc7495ec1946656a11fc051a5be7a11 100644
--- a/llama-index-integrations/readers/llama-index-readers-memos/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-memos/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MemosReader"]
+contains_example = false
+import_path = "llama_index.readers.memos"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-metal/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-metal/pyproject.toml
index f9d810bb624d22d4c4f648ceb3803e59fe4e3e70..ad46b945025cd47b3474afde64e74c7e807e0d95 100644
--- a/llama-index-integrations/readers/llama-index-readers-metal/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-metal/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MetalReader"]
+contains_example = false
+import_path = "llama_index.readers.metal"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-microsoft-onedrive/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-microsoft-onedrive/pyproject.toml
index d187101506e296189e55c763bca63ede4d9da31d..d830f6becf6bc0e44fd9b1737edcf79dad3fcbd8 100644
--- a/llama-index-integrations/readers/llama-index-readers-microsoft-onedrive/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-microsoft-onedrive/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OneDriveReader"]
+contains_example = false
+import_path = "llama_index.readers.microsoft_onedrive"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-microsoft-outlook/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-microsoft-outlook/pyproject.toml
index fbaea8a039c98c7dbd8070a79adc9e591e4a3a1f..0f6d67405013a29d0c0c86f373f6c902e940c35d 100644
--- a/llama-index-integrations/readers/llama-index-readers-microsoft-outlook/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-microsoft-outlook/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OutlookLocalCalendarReader"]
+contains_example = false
+import_path = "llama_index.readers.microsoft_outlook"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-microsoft-sharepoint/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-microsoft-sharepoint/pyproject.toml
index b8a53e6825024ed1bef2cd2f83f82bcf88a29afa..64596ebba7a031e7f265247191c4d03f4eeb4869 100644
--- a/llama-index-integrations/readers/llama-index-readers-microsoft-sharepoint/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-microsoft-sharepoint/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SharePointReader"]
+contains_example = false
+import_path = "llama_index.readers.microsoft_sharepoint"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-milvus/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-milvus/pyproject.toml
index 3660e21ad01746d5187d2b467f4c17317e8965bd..7dac376eccf1631e2425c3eda6931865ff31fd8a 100644
--- a/llama-index-integrations/readers/llama-index-readers-milvus/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-milvus/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MilvusReader"]
+contains_example = false
+import_path = "llama_index.readers.milvus"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-minio/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-minio/pyproject.toml
index 212d68f78ba8c6328a4f16f30c447c8a588f6f8c..75910e27674d12bacefe46123d9549df390ea59d 100644
--- a/llama-index-integrations/readers/llama-index-readers-minio/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-minio/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BotoMinioReader", "MinioReader"]
+contains_example = false
+import_path = "llama_index.readers.minio"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-mondaydotcom/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-mondaydotcom/pyproject.toml
index 8dafad1eb7d889f7dbe28e70277eb2a5190c235f..3ff82234410cc143741d8e1d8e3e6d0365594495 100644
--- a/llama-index-integrations/readers/llama-index-readers-mondaydotcom/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-mondaydotcom/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MondayReader"]
+contains_example = false
+import_path = "llama_index.readers.mondaydotcom"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-mongodb/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-mongodb/pyproject.toml
index 8345720ffc0159d13f396f2ede38a9c4693ceedd..9b942579aa21db633b227dc9aed1d592f67fa80e 100644
--- a/llama-index-integrations/readers/llama-index-readers-mongodb/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-mongodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SimpleMongoReader"]
+contains_example = false
+import_path = "llama_index.readers.mongodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-myscale/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-myscale/pyproject.toml
index f4f83fa606b8bd57ee3f569620ea95463f65f851..01debcc67487101a0a4896a5ead00f41d4a08086 100644
--- a/llama-index-integrations/readers/llama-index-readers-myscale/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-myscale/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MyScaleReader", "escape_str", "format_list_to_string"]
+contains_example = false
+import_path = "llama_index.readers.myscale"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-notion/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-notion/pyproject.toml
index b208d021080111fe8ae1f33ab77b942b5aa0eb98..3d91e442f7394c5ad915d43724f9467d57250971 100644
--- a/llama-index-integrations/readers/llama-index-readers-notion/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-notion/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["NotionPageReader"]
+contains_example = false
+import_path = "llama_index.readers.notion"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-nougat-ocr/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-nougat-ocr/pyproject.toml
index 88ed255d694cfbbf89167fe8dcb34610e1b0e7d0..bb4cb5f25b3273145a33b8ad1065472cbf8a723a 100644
--- a/llama-index-integrations/readers/llama-index-readers-nougat-ocr/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-nougat-ocr/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PDFNougatOCR"]
+contains_example = false
+import_path = "llama_index.readers.nougat_ocr"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-obsidian/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-obsidian/pyproject.toml
index ee5a7203c04f0bbc47805618af9a14edfbd9a55f..f475249adc30eeff1fdf33ac9ef7563f2f6b77bc 100644
--- a/llama-index-integrations/readers/llama-index-readers-obsidian/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-obsidian/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ObsidianReader"]
+contains_example = false
+import_path = "llama_index.readers.obsidian"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-openalex/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-openalex/pyproject.toml
index fc81800ab8fffd3296e54b6f373758c8e1150312..b95295dfd3c1e3e842a109915fcbff985d05a763 100644
--- a/llama-index-integrations/readers/llama-index-readers-openalex/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-openalex/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAlexReader"]
+contains_example = false
+import_path = "llama_index.readers.openalex"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-opendal/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-opendal/pyproject.toml
index d21a56a4e9da6773ac1d807176011032cae84f26..103fdb8395f5b429528edfa5bc19a4f9c9f24313 100644
--- a/llama-index-integrations/readers/llama-index-readers-opendal/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-opendal/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpendalAzblobReader", "OpendalGcsReader", "OpendalReader", "OpendalS3Reader"]
+contains_example = false
+import_path = "llama_index.readers.opendal"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-opensearch/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-opensearch/pyproject.toml
index 222241b52b5e2af7ff0b8c7981681d201fcd196a..929ca4060e942af1fd0805d2b53febb7450d049c 100644
--- a/llama-index-integrations/readers/llama-index-readers-opensearch/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-opensearch/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpensearchReader"]
+contains_example = false
+import_path = "llama_index.readers.opensearch"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-pandas-ai/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-pandas-ai/pyproject.toml
index 4767845b15d23bf59f7dfc7c6a8731fc6531090d..172776431390306485074847ec40b31917211776 100644
--- a/llama-index-integrations/readers/llama-index-readers-pandas-ai/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-pandas-ai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PandasAIReader"]
+contains_example = false
+import_path = "llama_index.readers.pandas_ai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-papers/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-papers/pyproject.toml
index 1153ff97a758a50c4964f4871b0ee3a131ee034d..5e9bc9211d58c48a64ed66ea4f37d065efbc14f6 100644
--- a/llama-index-integrations/readers/llama-index-readers-papers/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-papers/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ArxivReader", "PubmedReader"]
+contains_example = false
+import_path = "llama_index.readers.papers"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-patentsview/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-patentsview/pyproject.toml
index 61525bf10327a7ae53b949a540e672a082aec73c..f62f07b77afcfa698966d63e3b26c5e448450d96 100644
--- a/llama-index-integrations/readers/llama-index-readers-patentsview/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-patentsview/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PatentsviewReader"]
+contains_example = false
+import_path = "llama_index.readers.patentsview"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-pathway/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-pathway/pyproject.toml
index f137b6a8727c57c6dcdcc81d33242d328675b0c2..c2456fe493ff6a5919c3523e5f4903e71b94f9d9 100644
--- a/llama-index-integrations/readers/llama-index-readers-pathway/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-pathway/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PathwayReader"]
+contains_example = false
+import_path = "llama_index.readers.pathway"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-pdb/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-pdb/pyproject.toml
index b8a620f7c5d17b5f5b6f7675a8f0af415d5c8f3d..110ae22d3934f2e52098e85dc34a7fc6f16a9654 100644
--- a/llama-index-integrations/readers/llama-index-readers-pdb/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-pdb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PdbAbstractReader"]
+contains_example = false
+import_path = "llama_index.readers.pdb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-pdf-table/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-pdf-table/pyproject.toml
index 0c50c1a0858bc82bee500e531ef942de60c47f4b..d6d2a3aac91a9503c303e0afbee6c64f03a271b2 100644
--- a/llama-index-integrations/readers/llama-index-readers-pdf-table/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-pdf-table/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PDFTableReader"]
+contains_example = false
+import_path = "llama_index.readers.pdf_table"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-pinecone/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-pinecone/pyproject.toml
index 9fb4110b9646917abc95f071b0a36f5f0be5b773..75ea073ac14ae497ebdf55d12fe135ae49e15637 100644
--- a/llama-index-integrations/readers/llama-index-readers-pinecone/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-pinecone/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PineconeReader"]
+contains_example = false
+import_path = "llama_index.readers.pinecone"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-preprocess/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-preprocess/pyproject.toml
index bd79714b36f2fa6a658c93d452bbbc1d8fe4d8f6..f38fcc913c929d47a389a3100753e0b979f533b2 100644
--- a/llama-index-integrations/readers/llama-index-readers-preprocess/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-preprocess/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PreprocessReader"]
+contains_example = false
+import_path = "llama_index.readers.preprocess"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-psychic/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-psychic/pyproject.toml
index ee64806bdee1da49c034f7b5aff38e59f208567b..94660f80e3609ca8922db01e804415ae385e7fbd 100644
--- a/llama-index-integrations/readers/llama-index-readers-psychic/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-psychic/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PsychicReader"]
+contains_example = false
+import_path = "llama_index.readers.psychic"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-qdrant/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-qdrant/pyproject.toml
index a3d34efa4ae66192d3ed568905df493078a00f23..1df77c5c231b49d0edb7ebc914c29d95ebe98223 100644
--- a/llama-index-integrations/readers/llama-index-readers-qdrant/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-qdrant/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["QdrantReader"]
+contains_example = false
+import_path = "llama_index.readers.qdrant"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-rayyan/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-rayyan/pyproject.toml
index 9dad12be03e8289ccf70e4874c83016f9244387c..3eb60d547eb23137c2c85c520d79701ab01574ea 100644
--- a/llama-index-integrations/readers/llama-index-readers-rayyan/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-rayyan/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RayyanReader"]
+contains_example = false
+import_path = "llama_index.readers.rayyan"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-readwise/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-readwise/pyproject.toml
index 5e7fdc5db4971c9f01cd4ea4a14e493e8a13795e..e25c6bcb5055495ff9f7cba179437dcb9bbc5c3a 100644
--- a/llama-index-integrations/readers/llama-index-readers-readwise/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-readwise/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ReadwiseReader"]
+contains_example = false
+import_path = "llama_index.readers.readwise"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-reddit/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-reddit/pyproject.toml
index 2a16dcd9a188aaa84ace826234c3b6542de081ff..41929382fb08f86de099921f9c07f4bf58e9781a 100644
--- a/llama-index-integrations/readers/llama-index-readers-reddit/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-reddit/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RedditReader"]
+contains_example = false
+import_path = "llama_index.readers.reddit"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-remote-depth/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-remote-depth/pyproject.toml
index 49ddd387d29fd219f5368f4e7146c41e9497458b..ab41e1461f3bb42ac7eb7746d2aca1fe051a7014 100644
--- a/llama-index-integrations/readers/llama-index-readers-remote-depth/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-remote-depth/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RemoteDepthReader"]
+contains_example = false
+import_path = "llama_index.readers.remote_depth"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-remote/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-remote/pyproject.toml
index 44e8ad774c0f08e727352cd31d87724bdc2cdda2..9be6153e59d89dd38ecc243cabb859db6d34e2c2 100644
--- a/llama-index-integrations/readers/llama-index-readers-remote/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-remote/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RemoteReader"]
+contains_example = false
+import_path = "llama_index.readers.remote"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-s3/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-s3/pyproject.toml
index fa6d7777ec8f4bc9399b5bb41946da1c18fefcc5..faa293098115e6bd4c1b7e5dcfb2dbcd18fcb205 100644
--- a/llama-index-integrations/readers/llama-index-readers-s3/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-s3/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["S3Reader"]
+contains_example = false
+import_path = "llama_index.readers.s3"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-sec-filings/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-sec-filings/pyproject.toml
index 057817fa437bb154ccec53e04330f43182cfc407..640cbcd4c955dffc6c98700896f3b1cc9bf42667 100644
--- a/llama-index-integrations/readers/llama-index-readers-sec-filings/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-sec-filings/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SECFilingsLoader"]
+contains_example = false
+import_path = "llama_index.readers.sec_filings"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-semanticscholar/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-semanticscholar/pyproject.toml
index c3a46b4be79379dd98a0a862e8a00463c4ff61fb..d90c772e1b61b12feed201073d20d265ab5e80be 100644
--- a/llama-index-integrations/readers/llama-index-readers-semanticscholar/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-semanticscholar/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SemanticScholarReader"]
+contains_example = false
+import_path = "llama_index.readers.semanticscholar"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-singlestore/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-singlestore/pyproject.toml
index ad254007ed2efbad1d0335f59a95815d871906b6..dc996a1810ec142fc4e8eb2f970e79a436cc0128 100644
--- a/llama-index-integrations/readers/llama-index-readers-singlestore/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-singlestore/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SingleStoreReader"]
+contains_example = false
+import_path = "llama_index.readers.singlestore"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-slack/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-slack/pyproject.toml
index 7e9ef3d0f8649b0190d2027cfbb481b83baed71f..63d2eabc05a672dab98a5a68e08c2ee79ee5f7c5 100644
--- a/llama-index-integrations/readers/llama-index-readers-slack/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-slack/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SlackReader"]
+contains_example = false
+import_path = "llama_index.readers.slack"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-smart-pdf-loader/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-smart-pdf-loader/pyproject.toml
index 9452872576bd1b0b3d2160d8ba1e754879da304c..fbcd08e79ed62a54e83fde8388adf74a1325bd3f 100644
--- a/llama-index-integrations/readers/llama-index-readers-smart-pdf-loader/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-smart-pdf-loader/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SmartPDFLoader"]
+contains_example = false
+import_path = "llama_index.readers.smart_pdf_loader"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-snowflake/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-snowflake/pyproject.toml
index 451e7d59297cfc9679b34c1aacce0b5cf3252812..15b7243646ca97b9722ed45cce5cd0fae25fde01 100644
--- a/llama-index-integrations/readers/llama-index-readers-snowflake/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-snowflake/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SnowflakeReader"]
+contains_example = false
+import_path = "llama_index.readers.snowflake"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-snscrape-twitter/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-snscrape-twitter/pyproject.toml
index 51f912d9898e41f55b1143c0946991fce2fa2f66..ada61bf842f6422d1f55e6885bf4bb41e7ce184d 100644
--- a/llama-index-integrations/readers/llama-index-readers-snscrape-twitter/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-snscrape-twitter/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SnscrapeTwitterReader"]
+contains_example = false
+import_path = "llama_index.readers.snscrape_twitter"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-spotify/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-spotify/pyproject.toml
index b732c0691bcf2b1da367d19e475a2e59c35a8e3e..c4a017406174b7ca4d98016218a00145a374eee3 100644
--- a/llama-index-integrations/readers/llama-index-readers-spotify/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-spotify/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SpotifyReader"]
+contains_example = false
+import_path = "llama_index.readers.spotify"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-stackoverflow/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-stackoverflow/pyproject.toml
index 3ea8a1d04a7c7488a56c5de082d6734792937885..f9df6c55eec81ee756e2f535e50d05c1b3a0a375 100644
--- a/llama-index-integrations/readers/llama-index-readers-stackoverflow/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-stackoverflow/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["StackoverflowReader"]
+contains_example = false
+import_path = "llama_index.readers.stackoverflow"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-steamship/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-steamship/pyproject.toml
index f38f7858005b870e6e6d5e3de2de71ae3c9872cf..8fc6cb9c3ec5026ebc523a827f988954b9330902 100644
--- a/llama-index-integrations/readers/llama-index-readers-steamship/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-steamship/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SteamshipFileReader"]
+contains_example = false
+import_path = "llama_index.readers.steamship"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-string-iterable/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-string-iterable/pyproject.toml
index 109fe5b64735201e48b2b05e105113962017d45c..9dd0df5540b5679d58ff4bbd11a20452fcbda3ae 100644
--- a/llama-index-integrations/readers/llama-index-readers-string-iterable/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-string-iterable/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["StringIterableReader"]
+contains_example = false
+import_path = "llama_index.readers.string_iterable"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-stripe-docs/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-stripe-docs/pyproject.toml
index b0620f0a45a8ea4b70e2c3c4bc4d2daabe1fb4bd..a147f68c6e0543667ec1adf51cc8e4ba2617458d 100644
--- a/llama-index-integrations/readers/llama-index-readers-stripe-docs/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-stripe-docs/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["StripeDocsReader"]
+contains_example = false
+import_path = "llama_index.readers.stripe_docs"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-telegram/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-telegram/pyproject.toml
index b51ab1323ffe250042ca4d4219ce74d362cf99d1..c295cfe5d36e9158dd4d9cc6f185fb8d33ba65c0 100644
--- a/llama-index-integrations/readers/llama-index-readers-telegram/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-telegram/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TelegramReader"]
+contains_example = false
+import_path = "llama_index.readers.telegram"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-trello/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-trello/pyproject.toml
index 7c17200eed6790522023c666060e65a2e2a4d1ee..89bb44ee067360caa8deba3f2d4fbed2498a7b05 100644
--- a/llama-index-integrations/readers/llama-index-readers-trello/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-trello/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TrelloReader"]
+contains_example = false
+import_path = "llama_index.readers.trello"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-twitter/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-twitter/pyproject.toml
index 1a7c284050f8a8920f2dbc814c130170738ab6fb..5dce05c495a65805955484390e90b050b40d7f56 100644
--- a/llama-index-integrations/readers/llama-index-readers-twitter/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-twitter/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TwitterTweetReader"]
+contains_example = false
+import_path = "llama_index.readers.twitter"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-txtai/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-txtai/pyproject.toml
index fd1ca40feced5d5270ac4226a0676ad039e20b5e..2842af27557d2f1f8042fb7f53b53b49cb4f5c62 100644
--- a/llama-index-integrations/readers/llama-index-readers-txtai/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-txtai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TxtaiReader"]
+contains_example = false
+import_path = "llama_index.readers.txtai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-weather/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-weather/pyproject.toml
index 63ebade553e7d7049e28d6ec7498919a1232b2ab..74f65946dd7fea247093b9ae553325520dbc7ee2 100644
--- a/llama-index-integrations/readers/llama-index-readers-weather/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-weather/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WeatherReader"]
+contains_example = false
+import_path = "llama_index.readers.weather"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-weaviate/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-weaviate/pyproject.toml
index 7644db1d435d6b984c39e8063343d11ec31cb023..5590b6caa04f7725b322a3142e4a2147168a99c8 100644
--- a/llama-index-integrations/readers/llama-index-readers-weaviate/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-weaviate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WeaviateReader"]
+contains_example = false
+import_path = "llama_index.readers.weaviate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-web/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-web/pyproject.toml
index 74a6d4390b34511e9ed238babdf94fc48120cda1..17da6a0e5076eada25048005b2362a2059f544d5 100644
--- a/llama-index-integrations/readers/llama-index-readers-web/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-web/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AsyncWebPageReader", "BeautifulSoupWebReader", "KnowledgeBaseWebReader", "MainContentExtractorReader", "NewsArticleReader", "ReadabilityWebPageReader", "RssNewsReader", "RssReader", "SimpleWebPageReader", "SitemapReader", "TrafilaturaWebReader", "UnstructuredURLLoader", "WholeSiteReader"]
+contains_example = false
+import_path = "llama_index.readers.web"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-whatsapp/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-whatsapp/pyproject.toml
index 3631a7485da502c7af737f0e994726cf536e1d3d..8989bd0997d8365c815098ce30b3535d7b7f72cc 100644
--- a/llama-index-integrations/readers/llama-index-readers-whatsapp/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-whatsapp/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WhatsappChatLoader"]
+contains_example = false
+import_path = "llama_index.readers.whatsapp"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-wikipedia/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-wikipedia/pyproject.toml
index 67680b5b31dfac43b75ad3a14040175a592e0794..1867d76f7589a05743d72ace634e2a48bdcb6c6e 100644
--- a/llama-index-integrations/readers/llama-index-readers-wikipedia/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-wikipedia/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WikipediaReader"]
+contains_example = false
+import_path = "llama_index.readers.wikipedia"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-wordlift/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-wordlift/pyproject.toml
index 24f1677e6e731d517949d88c489a044e3bcb7074..af304482adff27073252707e9a814469b49a80d8 100644
--- a/llama-index-integrations/readers/llama-index-readers-wordlift/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-wordlift/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WordLiftLoader"]
+contains_example = false
+import_path = "llama_index.readers.wordlift"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-wordpress/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-wordpress/pyproject.toml
index 191cb0c0fab0e3e59ff920fd04e5dc9dc0546651..c31468c5f89ad89a9b781905fc76cf26ab91303d 100644
--- a/llama-index-integrations/readers/llama-index-readers-wordpress/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-wordpress/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WordpressReader"]
+contains_example = false
+import_path = "llama_index.readers.wordpress"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-youtube-transcript/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-youtube-transcript/pyproject.toml
index fabea71f661e8454022ba36fe2c919319eed4439..bffc6c0823437b92821739675d23c561154eab7b 100644
--- a/llama-index-integrations/readers/llama-index-readers-youtube-transcript/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-youtube-transcript/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["YoutubeTranscriptReader"]
+contains_example = false
+import_path = "llama_index.readers.youtube_transcript"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-zendesk/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-zendesk/pyproject.toml
index 04cfe358b88ea6e8cf5ef5da12efd8a95f163357..6b068099e8353a52cbe7733b98b1d6bdc01aeb15 100644
--- a/llama-index-integrations/readers/llama-index-readers-zendesk/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-zendesk/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ZendeskReader"]
+contains_example = false
+import_path = "llama_index.readers.zendesk"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-zep/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-zep/pyproject.toml
index d2bf0c7f9a5783165ab331faea21dc90a29185a7..9c05cc02e05636357e9a18e612ae2155b388b0f4 100644
--- a/llama-index-integrations/readers/llama-index-readers-zep/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-zep/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ZepReader"]
+contains_example = false
+import_path = "llama_index.readers.zep"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/readers/llama-index-readers-zulip/pyproject.toml b/llama-index-integrations/readers/llama-index-readers-zulip/pyproject.toml
index a8f1a8a1cb6210bbd79fc1d7107f37addb706910..d9f647077b0d76f3c21abe02e48ceda6d5015d3e 100644
--- a/llama-index-integrations/readers/llama-index-readers-zulip/pyproject.toml
+++ b/llama-index-integrations/readers/llama-index-readers-zulip/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ZulipReader"]
+contains_example = false
+import_path = "llama_index.readers.zulip"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/response_synthesizers/llama-index-response-synthesizers-google/pyproject.toml b/llama-index-integrations/response_synthesizers/llama-index-response-synthesizers-google/pyproject.toml
index 3f6d339fd6fe67ccab39e9d0e39e56154b92e203..64ff11248432e7e577a022b3bfb1a9adfe7ff7c8 100644
--- a/llama-index-integrations/response_synthesizers/llama-index-response-synthesizers-google/pyproject.toml
+++ b/llama-index-integrations/response_synthesizers/llama-index-response-synthesizers-google/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GoogleTextSynthesizer", "SynthesizedResponse", "set_google_config"]
+contains_example = false
+import_path = "llama_index.response_synthesizers.google"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/retrievers/llama-index-retrievers-bm25/pyproject.toml b/llama-index-integrations/retrievers/llama-index-retrievers-bm25/pyproject.toml
index d80b0c4658de7e8fff8520052521a57921eea2f5..7fa999684c6218908038de61abf3d3974b232d2d 100644
--- a/llama-index-integrations/retrievers/llama-index-retrievers-bm25/pyproject.toml
+++ b/llama-index-integrations/retrievers/llama-index-retrievers-bm25/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BM25Retriever"]
+contains_example = false
+import_path = "llama_index.retrievers.bm25"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/retrievers/llama-index-retrievers-pathway/pyproject.toml b/llama-index-integrations/retrievers/llama-index-retrievers-pathway/pyproject.toml
index 128a357f26da0008d171f6a820cf1d4e8f4b8768..be8ae1c24c689c3dab51a26b352ed8c74b9c6e86 100644
--- a/llama-index-integrations/retrievers/llama-index-retrievers-pathway/pyproject.toml
+++ b/llama-index-integrations/retrievers/llama-index-retrievers-pathway/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PathwayRetriever"]
+contains_example = false
+import_path = "llama_index.retrievers.pathway"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/retrievers/llama-index-retrievers-you/pyproject.toml b/llama-index-integrations/retrievers/llama-index-retrievers-you/pyproject.toml
index dd54f628dd45c5b0d947de56873a193abb4f41cd..fd053d45a4460d7155871af80765b4b9f8411f2d 100644
--- a/llama-index-integrations/retrievers/llama-index-retrievers-you/pyproject.toml
+++ b/llama-index-integrations/retrievers/llama-index-retrievers-you/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["YouRetriever"]
+contains_example = false
+import_path = "llama_index.retrievers.you"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/chat_store/llama-index-storage-chat-store-redis/pyproject.toml b/llama-index-integrations/storage/chat_store/llama-index-storage-chat-store-redis/pyproject.toml
index 8875d620db49b57796ebe0355a25ce85098a39a7..197ba8622719a9256d65883391eb4780e181c2fc 100644
--- a/llama-index-integrations/storage/chat_store/llama-index-storage-chat-store-redis/pyproject.toml
+++ b/llama-index-integrations/storage/chat_store/llama-index-storage-chat-store-redis/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RedisChatStore"]
+contains_example = false
+import_path = "llama_index.storage.chat_store.redis"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-dynamodb/pyproject.toml b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-dynamodb/pyproject.toml
index a125610252f56f0363b134af047dd03d1ee45f1d..0c2a38ad046abe572a62150f0c9e37e9a7ee7310 100644
--- a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-dynamodb/pyproject.toml
+++ b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-dynamodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DynamoDBDocumentStore"]
+contains_example = false
+import_path = "llama_index.storage.docstore.dynamodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-firestore/pyproject.toml b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-firestore/pyproject.toml
index 876ac5e4f3cc74f4d4665e3e1a18826f6ea4c057..b07de9bc1df29d8a049879e68f31f78afda526a4 100644
--- a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-firestore/pyproject.toml
+++ b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-firestore/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FirestoreDocumentStore"]
+contains_example = false
+import_path = "llama_index.storage.docstore.firestore"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-mongodb/pyproject.toml b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-mongodb/pyproject.toml
index bbbf7f0a9905d2eb661152730c5bfd30fda2b337..dc87884c4b9393a4a1699721926d417eb29076a6 100644
--- a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-mongodb/pyproject.toml
+++ b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-mongodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MongoDocumentStore"]
+contains_example = false
+import_path = "llama_index.storage.docstore.mongodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-postgres/pyproject.toml b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-postgres/pyproject.toml
index 21987ab5e59307a2c3cd9fda152cd71fd2002f77..d4239e22f25fbc41e8857b4944b458024254272b 100644
--- a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-postgres/pyproject.toml
+++ b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-postgres/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PostgresDocumentStore"]
+contains_example = false
+import_path = "llama_index.storage.docstore.postgres"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-redis/pyproject.toml b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-redis/pyproject.toml
index b07012356387e79b4d39907dfcce8ce0b3d5b1a2..2df0180cd8d4b8461a8756f7f481b9664681f46f 100644
--- a/llama-index-integrations/storage/docstore/llama-index-storage-docstore-redis/pyproject.toml
+++ b/llama-index-integrations/storage/docstore/llama-index-storage-docstore-redis/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RedisDocumentStore"]
+contains_example = false
+import_path = "llama_index.storage.docstore.redis"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-dynamodb/pyproject.toml b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-dynamodb/pyproject.toml
index 27a324115c50f556b588b4d1e0778bdee36ed3e8..e5704881186408fa39957d347d6d63108ab04d69 100644
--- a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-dynamodb/pyproject.toml
+++ b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-dynamodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DynamoDBIndexStore"]
+contains_example = false
+import_path = "llama_index.storage.index_store.dynamodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-firestore/pyproject.toml b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-firestore/pyproject.toml
index 6d6c30b44bb700bf0cc5bd6dcd63226d9f414324..a4f079cdf511c9d72c49233ad2026046c28df6da 100644
--- a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-firestore/pyproject.toml
+++ b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-firestore/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FirestoreIndexStore"]
+contains_example = false
+import_path = "llama_index.storage.index_store.firestore"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-mongodb/pyproject.toml b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-mongodb/pyproject.toml
index 3e08a365bbcc16af5b1a3ee199e7ae1493a7c833..98ed69e4077006ac473a1f6790caf5cd8d946102 100644
--- a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-mongodb/pyproject.toml
+++ b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-mongodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MongoIndexStore"]
+contains_example = false
+import_path = "llama_index.storage.index_store.mongodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-postgres/pyproject.toml b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-postgres/pyproject.toml
index 27cbf6b2cd12d8a9ef1b2f6441df3a0ff5e6d0ec..84885d4f7091a2de12d2d2c56f5b5afda0651318 100644
--- a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-postgres/pyproject.toml
+++ b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-postgres/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PostgresIndexStore"]
+contains_example = false
+import_path = "llama_index.storage.index_store.postgres"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-redis/pyproject.toml b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-redis/pyproject.toml
index a615fc94efdb0d188792e8c5b41c6167304be823..e5e08584d87325a228021e8272960cbd10fcf926 100644
--- a/llama-index-integrations/storage/index_store/llama-index-storage-index-store-redis/pyproject.toml
+++ b/llama-index-integrations/storage/index_store/llama-index-storage-index-store-redis/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RedisIndexStore"]
+contains_example = false
+import_path = "llama_index.storage.index_store.redis"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-dynamodb/pyproject.toml b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-dynamodb/pyproject.toml
index b98765b889f9f5e49390e794315c31f29c773cfb..34c633576ef661ec332287967155ab63cb3ca4e5 100644
--- a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-dynamodb/pyproject.toml
+++ b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-dynamodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DynamoDBKVStore"]
+contains_example = false
+import_path = "llama_index.storage.kvstore.dynamodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-firestore/pyproject.toml b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-firestore/pyproject.toml
index b30fd5a7fef0b4bac4f4cc6e41a297aade87dcd9..a5099c22817d0bc438c8613a757191b08949ec1d 100644
--- a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-firestore/pyproject.toml
+++ b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-firestore/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FirestoreKVStore"]
+contains_example = false
+import_path = "llama_index.storage.kvstore.firestore"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-mongodb/pyproject.toml b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-mongodb/pyproject.toml
index 0b44d897f6aca6266c716d8602e3068fc1a695e9..8033c338b2229de3d61c610117ef05499b26bdb4 100644
--- a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-mongodb/pyproject.toml
+++ b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-mongodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MongoDBKVStore"]
+contains_example = false
+import_path = "llama_index.storage.kvstore.mongodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-postgres/pyproject.toml b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-postgres/pyproject.toml
index 4ff1dea354575ecd41eb2b043ad376791d3829a6..6adb76d163df2eb0c789c8a16ee0c30fd13ab6d0 100644
--- a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-postgres/pyproject.toml
+++ b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-postgres/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PostgresKVStore"]
+contains_example = false
+import_path = "llama_index.storage.kvstore.postgres"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-redis/pyproject.toml b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-redis/pyproject.toml
index a042ab4dca6d836bc97d1ab13cbffb27e9fe7242..204b777c9f4982aa483907e60287475a908b236a 100644
--- a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-redis/pyproject.toml
+++ b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-redis/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RedisKVStore"]
+contains_example = false
+import_path = "llama_index.storage.kvstore.redis"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-s3/pyproject.toml b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-s3/pyproject.toml
index fd7a32e1d75b36a806f536ab2256c4983196c57c..98a849fefc7813b9688385e64cf9403bd43bc1ba 100644
--- a/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-s3/pyproject.toml
+++ b/llama-index-integrations/storage/kvstore/llama-index-storage-kvstore-s3/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["S3DBKVStore"]
+contains_example = false
+import_path = "llama_index.storage.kvstore.s3"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-arxiv/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-arxiv/pyproject.toml
index e2f5deb67c231edc8cdc42f5049680fa5dee0eec..e0f37fb906cdc202ac40991a9f95561cfb9fd9dc 100644
--- a/llama-index-integrations/tools/llama-index-tools-arxiv/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-arxiv/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ArxivToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.arxiv"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-azure-cv/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-azure-cv/pyproject.toml
index e0e9b39d22063adc989e7eb2f65ad0392ae0e38e..d381abba941b3ae9c1614f38a5ac913f10650bd9 100644
--- a/llama-index-integrations/tools/llama-index-tools-azure-cv/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-azure-cv/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AzureCVToolSpec", "CV_URL_TMPL"]
+contains_example = false
+import_path = "llama_index.tools.azure_cv"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-azure-speech/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-azure-speech/pyproject.toml
index b6050ba1e4ba9906310453b09aa32d590c3d4251..9fe40f393ead055818c76ebe66399268c1f9a7ac 100644
--- a/llama-index-integrations/tools/llama-index-tools-azure-speech/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-azure-speech/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AzureSpeechToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.azure_speech"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-azure-translate/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-azure-translate/pyproject.toml
index 54fcbdd3f33da83131e9ee051da06c686f5d8029..98da8d988aacdb0e63fbee023cb73846890e446d 100644
--- a/llama-index-integrations/tools/llama-index-tools-azure-translate/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-azure-translate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AzureTranslateToolSpec", "ENDPOINT_BASE_URL"]
+contains_example = false
+import_path = "llama_index.tools.azure_translate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-bing-search/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-bing-search/pyproject.toml
index ed7096a3f86b43381b82c0b1b50215195586b821..e17a82e4f4704a54fe37aa31510ae5d64295a59e 100644
--- a/llama-index-integrations/tools/llama-index-tools-bing-search/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-bing-search/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BingSearchToolSpec", "ENDPOINT_BASE_URL"]
+contains_example = false
+import_path = "llama_index.tools.bing_search"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-chatgpt-plugin/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-chatgpt-plugin/pyproject.toml
index 8c4f9fcf2ff032d8a27ceda684b17b586153f68c..ba2c1a10ba2eff16747090373f413b89dd6aa7b0 100644
--- a/llama-index-integrations/tools/llama-index-tools-chatgpt-plugin/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-chatgpt-plugin/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ChatGPTPluginToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.chatgpt_plugin"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-code-interpreter/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-code-interpreter/pyproject.toml
index d0530c3e6c3f6f48ceacce55ce9b5a0a51cfab36..cc75cf163c038e9735cb4cd0e3f235a1a2f0992e 100644
--- a/llama-index-integrations/tools/llama-index-tools-code-interpreter/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-code-interpreter/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["CodeInterpreterToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.code_interpreter"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-cogniswitch/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-cogniswitch/pyproject.toml
index 31cf7f548707c4d11eed788efac778492d1789e1..0954cf915e8471f62adbf7d83473fdabf1bc2f4c 100644
--- a/llama-index-integrations/tools/llama-index-tools-cogniswitch/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-cogniswitch/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["CogniswitchToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.cogniswitch"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-database/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-database/pyproject.toml
index dc98f8e62d193e9362e2d3181f53c034ca8c114b..d41d57df19505b97eb5e2df22892760ed6becf34 100644
--- a/llama-index-integrations/tools/llama-index-tools-database/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-database/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DatabaseToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.database"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-exa/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-exa/pyproject.toml
index 518fd8b699f780b2657e5dd29ee0bdec4b0f0319..eaa7139f2c13be3cc3d32b5e51b65a941d3ac8ec 100644
--- a/llama-index-integrations/tools/llama-index-tools-exa/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-exa/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ExaToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.exa"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-google/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-google/pyproject.toml
index 6233d6cf5efdee71ba0af093c1b82da46cb33d9f..47a451c61d8560311d7c8d88529de3ea15be9ef9 100644
--- a/llama-index-integrations/tools/llama-index-tools-google/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-google/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GmailToolSpec", "GoogleCalendarToolSpec", "GoogleSearchToolSpec", "QUERY_URL_TMPL"]
+contains_example = false
+import_path = "llama_index.tools.google"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-graphql/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-graphql/pyproject.toml
index c3524240fb1d193d807d3833f5ca3b3d62d962bf..1133e94f290f1838c7b4b840327b339bcf360302 100644
--- a/llama-index-integrations/tools/llama-index-tools-graphql/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-graphql/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GraphQLToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.graphql"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-ionic-shopping/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-ionic-shopping/pyproject.toml
index 88ba12ed7815e400e1be5963a2a108e5f436fd7a..7de4a02f025d21508c57a613ffad45d78c9091c5 100644
--- a/llama-index-integrations/tools/llama-index-tools-ionic-shopping/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-ionic-shopping/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["IonicShoppingToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.ionic_shopping"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-metaphor/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-metaphor/pyproject.toml
index 68506abc8b6c1b5b3286369a0c53c836eba4f3eb..0491502180f9e1bf53dbf925a575cc2cbc57dd31 100644
--- a/llama-index-integrations/tools/llama-index-tools-metaphor/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-metaphor/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MetaphorToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.metaphor"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-multion/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-multion/pyproject.toml
index e8c1262be722a55331789379c146c6a74d279261..c5271a8391aea01efee2b9abe98d35d5a0c68c2e 100644
--- a/llama-index-integrations/tools/llama-index-tools-multion/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-multion/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MultionToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.multion"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-neo4j/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-neo4j/pyproject.toml
index 13d45fca1afadc0fcd36339b86168508e13ab0e0..138c4be9ea706b027f232515574597368df4406b 100644
--- a/llama-index-integrations/tools/llama-index-tools-neo4j/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-neo4j/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Neo4jQueryToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.neo4j"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-notion/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-notion/pyproject.toml
index 4e71d6027f419bf45d6cb0d054cbfb2a53a4efe3..0c2eb37c739c337081347b59827e87f06268c77d 100644
--- a/llama-index-integrations/tools/llama-index-tools-notion/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-notion/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["NotionToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.notion"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-openai/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-openai/pyproject.toml
index 388807a6751e143147e8fd88326f49ae1b5ba888..7dd427b3038ca1516ecfe6a068accb6c066a2117 100644
--- a/llama-index-integrations/tools/llama-index-tools-openai/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-openai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAIImageGenerationToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.openai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-openapi/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-openapi/pyproject.toml
index 9d075ed8aa56294000b72cad461988d379bd8075..0cd8475993f5b1d5d4ab6e17ab0c9608b120ea35 100644
--- a/llama-index-integrations/tools/llama-index-tools-openapi/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-openapi/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenAPIToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.openapi"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-playgrounds/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-playgrounds/pyproject.toml
index b0b3e6a184d422e68a8c036da5417e560d4dcaab..a759ed9aa987ce12f5c0ef7a74de4e798328c7c7 100644
--- a/llama-index-integrations/tools/llama-index-tools-playgrounds/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-playgrounds/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PlaygroundsSubgraphConnectorToolSpec", "PlaygroundsSubgraphInspectorToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.playgrounds"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-python-file/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-python-file/pyproject.toml
index a095a348e7119e092fbd2281c18742299331d27a..0640824f7bc2462470dadf5ca5627d3a906ba753 100644
--- a/llama-index-integrations/tools/llama-index-tools-python-file/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-python-file/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PythonFileToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.python_file"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-requests/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-requests/pyproject.toml
index a3f64521a80ba4d3ded2d9e0bd9daca22bf12ffe..4b3cfe8d819409e2893b705124149890f38771b1 100644
--- a/llama-index-integrations/tools/llama-index-tools-requests/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-requests/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["INVALID_URL_PROMPT", "RequestsToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.requests"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-salesforce/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-salesforce/pyproject.toml
index 61e0d8ff57a1a03e6e62f670848e59b02842b4a5..ded2270807bc4c9e756bf1114fb6c358f74ad3ce 100644
--- a/llama-index-integrations/tools/llama-index-tools-salesforce/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-salesforce/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SalesforceToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.salesforce"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-shopify/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-shopify/pyproject.toml
index 73fe68ae7c84a49d21a4e342bf5fa7f787dc0b81..d5dbb82ba4a07465beba0d8ed70f8b2a1b6e9728 100644
--- a/llama-index-integrations/tools/llama-index-tools-shopify/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-shopify/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ShopifyToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.shopify"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-slack/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-slack/pyproject.toml
index 836a5fddb8251ec50c434fa6cdadab05f2bda2af..649325f6517877960f3308ebb16cd9355f7a51ea 100644
--- a/llama-index-integrations/tools/llama-index-tools-slack/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-slack/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SlackToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.slack"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-tavily-research/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-tavily-research/pyproject.toml
index b9fdaaeaa45fac673c9ed3f80b0b641bebb62328..5f0a20b766cfa563435df560c78f0cb731acaeb8 100644
--- a/llama-index-integrations/tools/llama-index-tools-tavily-research/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-tavily-research/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TavilyToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.tavily_research"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-text-to-image/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-text-to-image/pyproject.toml
index 93097b4b89e41b3224185c342ba76cc336bc51d1..199ff8ceb68951435886a127f3edbee2ea05cb48 100644
--- a/llama-index-integrations/tools/llama-index-tools-text-to-image/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-text-to-image/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TextToImageToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.text_to_image"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-vector-db/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-vector-db/pyproject.toml
index 1ae3f5213e6a6383152e0d47cb0bb470b8834817..eb1e763cfe51c55c7a676a4d60e79a3e94b90d5c 100644
--- a/llama-index-integrations/tools/llama-index-tools-vector-db/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-vector-db/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["VectorDB", "VectorDBToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.vector_db"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-waii/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-waii/pyproject.toml
index ec7591915dcf2b6fcaeac205168f26dd4f4308d1..c5296321a6bf20a34c9b6e78820bd311b3c9916e 100644
--- a/llama-index-integrations/tools/llama-index-tools-waii/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-waii/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WaiiToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.waii"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-weather/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-weather/pyproject.toml
index e051aa344f27d2ad89c045888e90703c968cfb98..7a0a72efc01245b91782d3465c084e9e1c993193 100644
--- a/llama-index-integrations/tools/llama-index-tools-weather/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-weather/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OpenWeatherMapToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.weather"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-wikipedia/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-wikipedia/pyproject.toml
index e4a51a26323f98e420f3ed8083beff3936ae3156..ddd974f0fc460fb9a55f9a4cc988412a721b82f0 100644
--- a/llama-index-integrations/tools/llama-index-tools-wikipedia/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-wikipedia/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WikipediaToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.wikipedia"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-wolfram-alpha/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-wolfram-alpha/pyproject.toml
index b8f42cd2714cea258aeb605f31a7636a6575238d..23a31c36bfb3360e0d28b6e66a6922035bd14978 100644
--- a/llama-index-integrations/tools/llama-index-tools-wolfram-alpha/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-wolfram-alpha/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["QUERY_URL_TMPL", "WolframAlphaToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.wolfram_alpha"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-yelp/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-yelp/pyproject.toml
index 087aca35d51c1980187ea51a97312a509b1b5ff0..47630933604c21814340e23bf5b2c6820caa14f3 100644
--- a/llama-index-integrations/tools/llama-index-tools-yelp/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-yelp/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["YelpToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.yelp"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/tools/llama-index-tools-zapier/pyproject.toml b/llama-index-integrations/tools/llama-index-tools-zapier/pyproject.toml
index aa454286ef7facbc2a4a20da9bf3c2da57077abc..7dc17d5c7c4bb88ecd3882954e9a501d7e3c349e 100644
--- a/llama-index-integrations/tools/llama-index-tools-zapier/pyproject.toml
+++ b/llama-index-integrations/tools/llama-index-tools-zapier/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ACTION_URL_TMPL", "ZapierToolSpec"]
+contains_example = false
+import_path = "llama_index.tools.zapier"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-astra/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-astra/pyproject.toml
index dd428aae884338c4290fbc2b9a2b6ff9b55da1f0..ab20365ef219b311ebf9d3a43ab6f425264ea5c2 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-astra/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-astra/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AstraDBVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.astra"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-awadb/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-awadb/pyproject.toml
index 4f9585e35687c63ba88581cf3cb7e66de0d01fcb..15a2d3e845d108458e5bc854bd1e534ece39f2f9 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-awadb/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-awadb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AwaDBVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.awadb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-azureaisearch/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-azureaisearch/pyproject.toml
index 413319db6a24af7cfee0c2ccb1104450907b32e6..5dc3d8f03f296e9483d7a54e01f3de50995ce114 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-azureaisearch/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-azureaisearch/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AzureAISearchVectorStore", "CognitiveSearchVectorStore", "IndexManagement"]
+contains_example = false
+import_path = "llama_index.vector_stores.azureaisearch"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-azurecosmosmongo/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-azurecosmosmongo/pyproject.toml
index a63d720831eb2d80b3b0a99ded9b68c009ebd080..4e951ded03661477454c461704547307cc539afa 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-azurecosmosmongo/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-azurecosmosmongo/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AzureCosmosDBMongoDBVectorSearch"]
+contains_example = false
+import_path = "llama_index.vector_stores.azurecosmosmongo"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-bagel/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-bagel/pyproject.toml
index 3498d07a9b3da28cbf2a233ac68a31ba02a726a3..17f1733a8c0921c490f6249b48ee12b29aa2ce34 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-bagel/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-bagel/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["BagelVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.bagel"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-cassandra/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-cassandra/pyproject.toml
index c1cfbe4c4c9a714bd63be19ee21790d504fe7b69..85904ea988411c9d27a9003e891d94c48d07e7da 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-cassandra/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-cassandra/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["CassandraVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.cassandra"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-chatgpt-plugin/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-chatgpt-plugin/pyproject.toml
index a50b87a87b6359c39c0a953989752945dab63ff8..c1588e7e94061245f778d4076fd6b033f9af942f 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-chatgpt-plugin/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-chatgpt-plugin/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ChatGPTRetrievalPluginClient"]
+contains_example = false
+import_path = "llama_index.vector_stores.chatgpt_plugin"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-chroma/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-chroma/pyproject.toml
index e4089fd2baee708adfffbbd0975cc26325267a68..58c36ebef2ffcf3155a15f185d02e0b80ee77af6 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-chroma/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-chroma/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ChromaVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.chroma"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-dashvector/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-dashvector/pyproject.toml
index ee1db674e65165748bf6d2349c37f6030a913988..f3c79181efbb8ae676027e3f4540d99763de15b9 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-dashvector/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-dashvector/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DashVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.dashvector"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-deeplake/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-deeplake/pyproject.toml
index d7dda10f68fa96993bc7f42e6ba15deb9ff61b76..c4a7aa11ebfc15eacef0bf651d2673c63336f647 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-deeplake/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-deeplake/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DeepLakeVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.deeplake"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-docarray/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-docarray/pyproject.toml
index 667bc66596497d394e47a8481f3ebe22d758ad2e..1cae4f58cce261b23f5b355866fa13717fc2ce3e 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-docarray/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-docarray/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DocArrayHnswVectorStore", "DocArrayInMemoryVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.docarray"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-dynamodb/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-dynamodb/pyproject.toml
index 32637990f7d185c0d267b6ad60b1c48043c9d285..d9765258b5de04e397b4cc0467ede49c514c363a 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-dynamodb/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-dynamodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DynamoDBVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.dynamodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/pyproject.toml
index 51a57441a909bee5e88854465c14b2a61aa1fca0..76424b7f7e42fe53e1913c5a995e498adf1e33f8 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-elasticsearch/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ElasticsearchStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.elasticsearch"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-epsilla/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-epsilla/pyproject.toml
index 67bd2fedccbe0134e392e80b8067c04c699f53fb..6cd302eeb31db119b2109d8d260586280b00e61e 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-epsilla/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-epsilla/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["EpsillaVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.epsilla"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-faiss/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-faiss/pyproject.toml
index 8f8bede380e1ef313a506add075e113d2caccbac..07cfdff7fb3a1b71342547a5182fdd06cf9a4dbf 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-faiss/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-faiss/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FaissVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.faiss"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-google/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-google/pyproject.toml
index 00acdd90de41ea952c8f8fa55a26c5c6a9d064c6..755fa0ce0fdcf98356bc3f1850dba8b479d73743 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-google/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-google/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GoogleVectorStore", "set_google_config"]
+contains_example = false
+import_path = "llama_index.vector_stores.google"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-jaguar/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-jaguar/pyproject.toml
index 287fe518db9ce35b08fbc5f5bb940d62ca2f6b08..683e2da873b520c35fc2367a99fda740dd7093e6 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-jaguar/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-jaguar/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["JaguarVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.jaguar"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-lancedb/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-lancedb/pyproject.toml
index 37151022de6685db494bda89b16e73c28fe3143d..8fdaeec2d36b8f378130a8e8f4b53e313e1864fc 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-lancedb/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-lancedb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LanceDBVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.lancedb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-lantern/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-lantern/pyproject.toml
index d44314814914a8b56c27b355440b4fcfe3632a83..0a9b95f7f37cfc5127c068ecd7a2006ddca5dab6 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-lantern/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-lantern/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LanternVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.lantern"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-metal/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-metal/pyproject.toml
index 51ab2b400c13babd51b57cb45aa27f9dfaa85a28..3db1d2e45c6f58bd10eff4eb5c21afe11d81c9f2 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-metal/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-metal/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MetalVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.metal"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-milvus/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-milvus/pyproject.toml
index ae211639aa34d9c62d2cf4f8570606c3e2c9d9f7..46024c4a58996ade6b45187ffe22762bf4963111 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-milvus/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-milvus/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MilvusVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.milvus"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-mongodb/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-mongodb/pyproject.toml
index e76953e7e49120bfb3a607a086a8bfe5f386c937..1fd00c14843fe4aa5e45c17ccf91796b522efb7f 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-mongodb/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-mongodb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MongoDBAtlasVectorSearch"]
+contains_example = false
+import_path = "llama_index.vector_stores.mongodb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-myscale/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-myscale/pyproject.toml
index a1e8d8a55893c24579032dba3c5eb4eda0af386c..85d8c243cb4489f162c8833cf84d751309beadf0 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-myscale/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-myscale/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MyScaleVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.myscale"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-neo4jvector/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-neo4jvector/pyproject.toml
index d0947d84f8ebff380ca7d9eb96006b036f4f842f..aa336af6edc8ca5145f585c7b48ba05ed98231c2 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-neo4jvector/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-neo4jvector/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Neo4jVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.neo4jvector"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-pgvecto-rs/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-pgvecto-rs/pyproject.toml
index 7f63f8092850053acb23fa7b62dbde8e857016e0..eaac7fe721730818caafa2125233fce75f8a47dd 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-pgvecto-rs/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-pgvecto-rs/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PGVectoRsStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.pgvecto_rs"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/pyproject.toml
index 40b66127cbde994a56838d7f9361b50c55567d36..71f772d2d553e1598928e36a8c633dcbec6e2508 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-pinecone/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PineconeVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.pinecone"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/pyproject.toml
index f5305f5549177860b31b958b8b9c5c5bdb9e238e..19a0deeeae100d7af34ee537fdcfa0ce841b0c2a 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-postgres/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PGVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.postgres"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-qdrant/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-qdrant/pyproject.toml
index e977c3d8e302af206f62a6742505e9479ff19bc6..ebf87539a1c3f74802a2d964b295a9593dc540f9 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-qdrant/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-qdrant/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["QdrantVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.qdrant"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-redis/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-redis/pyproject.toml
index c75e0918926af4c3e87a296f36950a8de5c84b8e..7d407dbcdb9c617d17e34460d5dd5cd3329823e1 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-redis/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-redis/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RedisVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.redis"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-rocksetdb/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-rocksetdb/pyproject.toml
index a5169e086253b9a5ec61e035dec967b37f0f307c..f5e47fa60c3d841b83d82a358cb617a8d86907b2 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-rocksetdb/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-rocksetdb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RocksetVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.rocksetdb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-singlestoredb/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-singlestoredb/pyproject.toml
index a18acb7d2461a397c0b1301365ed6df2226cadd8..1b6052fd6ca408ee6d79b6a85c63deb35e88eba6 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-singlestoredb/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-singlestoredb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SingleStoreVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.singlestoredb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-supabase/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-supabase/pyproject.toml
index 0ff41abebf11675e628d5d879e3d9ebf4f8dc8e5..e80453273645c7bea5de7d909170af7a5554868e 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-supabase/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-supabase/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SupabaseVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.supabase"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-tair/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-tair/pyproject.toml
index 10ace58855de4a868d1727943780d6969aef1642..7073036150294ee9ff14cf6d4b12019b25510b53 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-tair/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-tair/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TairVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.tair"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-tencentvectordb/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-tencentvectordb/pyproject.toml
index ee841e48c49d74065cfd101acffcae3857f276dd..f796d9f3e5716e775e5de4679527e5bec7df4d92 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-tencentvectordb/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-tencentvectordb/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TencentVectorDB"]
+contains_example = false
+import_path = "llama_index.vector_stores.tencentvectordb"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-timescalevector/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-timescalevector/pyproject.toml
index 62c6bd2c6740a7894322e5a1da3db2a9c420f689..33e973300ce5f7fb29f0ef87c468e735c85b8d14 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-timescalevector/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-timescalevector/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TimescaleVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.timescalevector"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-txtai/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-txtai/pyproject.toml
index a95341f267d98ada9d514745802067bf4d0a0ca8..5268d723211ee5b94c9a9ba8a1aff3f7f99ed6e8 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-txtai/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-txtai/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TxtaiVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.txtai"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-typesense/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-typesense/pyproject.toml
index 810e638a3557ceb4fe5a990222ec48216c53a0be..af764c269f13d67083d2be0e371a1f3035c8a232 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-typesense/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-typesense/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TypesenseVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.typesense"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-upstash/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-upstash/pyproject.toml
index 72296f970a2654a0860a5855fa13a73a370adbe2..7b7e8bc8e904556e1914372848dd04bb8bf2b45e 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-upstash/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-upstash/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["UpstashVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.upstash"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-weaviate/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-weaviate/pyproject.toml
index e52bbb3577db265c912b1c5d41f459383547cab9..d0861a9bee05e5b747b578a29ecfdca14bb552e0 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-weaviate/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-weaviate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WeaviateVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.weaviate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-integrations/vector_stores/llama-index-vector-stores-zep/pyproject.toml b/llama-index-integrations/vector_stores/llama-index-vector-stores-zep/pyproject.toml
index bef24c59a18552108e173e3309232f3e27f07284..c554ecbfaca9afccae19a5b24324fa83bef30426 100644
--- a/llama-index-integrations/vector_stores/llama-index-vector-stores-zep/pyproject.toml
+++ b/llama-index-integrations/vector_stores/llama-index-vector-stores-zep/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ZepVectorStore"]
+contains_example = false
+import_path = "llama_index.vector_stores.zep"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-agent-search-retriever/pyproject.toml b/llama-index-packs/llama-index-packs-agent-search-retriever/pyproject.toml
index f756f2e17287221f61867dd48dc5fe7d88afe5f8..0ae1107511c877bde5badba0672ec12f274190ce 100644
--- a/llama-index-packs/llama-index-packs-agent-search-retriever/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-agent-search-retriever/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AgentSearchRetriever", "AgentSearchRetrieverPack"]
+contains_example = true
+import_path = "llama_index.packs.agent_search_retriever"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-agents-llm-compiler/pyproject.toml b/llama-index-packs/llama-index-packs-agents-llm-compiler/pyproject.toml
index 805c31e72fa382639388087274af62cdc255dc42..50284e73130ea7435f110a63018b2d3badc51ef7 100644
--- a/llama-index-packs/llama-index-packs-agents-llm-compiler/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-agents-llm-compiler/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LLMCompilerAgentPack"]
+contains_example = false
+import_path = "llama_index.packs.agents_llm_compiler"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-amazon-product-extraction/pyproject.toml b/llama-index-packs/llama-index-packs-amazon-product-extraction/pyproject.toml
index 8fc09d56a336449c0698b7d6db04510946b25dd6..2c59063594c9be658be457cd01fdd7a8003afdb7 100644
--- a/llama-index-packs/llama-index-packs-amazon-product-extraction/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-amazon-product-extraction/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AmazonProductExtractionPack"]
+contains_example = false
+import_path = "llama_index.packs.amazon_product_extraction"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-arize-phoenix-query-engine/pyproject.toml b/llama-index-packs/llama-index-packs-arize-phoenix-query-engine/pyproject.toml
index b897cb8792f1bcaeb49935d7a609d17f069a4ae5..df4018e47666da72a9842e3ee2081c7c6153156e 100644
--- a/llama-index-packs/llama-index-packs-arize-phoenix-query-engine/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-arize-phoenix-query-engine/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ArizePhoenixQueryEnginePack"]
+contains_example = true
+import_path = "llama_index.packs.arize_phoenix_query_engine"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-auto-merging-retriever/pyproject.toml b/llama-index-packs/llama-index-packs-auto-merging-retriever/pyproject.toml
index 5e11b0e3e5ed3ccf35a2cb74183cd97c09e118a3..ea37093e849d96e2a05ac412c2b536edbea7793a 100644
--- a/llama-index-packs/llama-index-packs-auto-merging-retriever/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-auto-merging-retriever/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["AutoMergingRetrieverPack"]
+contains_example = true
+import_path = "llama_index.packs.auto_merging_retriever"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-chroma-autoretrieval/pyproject.toml b/llama-index-packs/llama-index-packs-chroma-autoretrieval/pyproject.toml
index afff9377d5bbbb6f31f8ed0b4dbd332a563953eb..9691432d9cf7fa10f1c27dc449f46893f2fd0b35 100644
--- a/llama-index-packs/llama-index-packs-chroma-autoretrieval/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-chroma-autoretrieval/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ChromaAutoretrievalPack"]
+contains_example = false
+import_path = "llama_index.packs.chroma_autoretrieval"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-cogniswitch-agent/pyproject.toml b/llama-index-packs/llama-index-packs-cogniswitch-agent/pyproject.toml
index 6c08c78516c4351360e31271e369365b13307757..409ca98282ada93e8e9d6d28e189e30518d6f541 100644
--- a/llama-index-packs/llama-index-packs-cogniswitch-agent/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-cogniswitch-agent/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["CogniswitchAgentPack"]
+contains_example = true
+import_path = "llama_index.packs.cogniswitch_agent"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-deeplake-deepmemory-retriever/pyproject.toml b/llama-index-packs/llama-index-packs-deeplake-deepmemory-retriever/pyproject.toml
index 34abf3e63a8dbcb5d73d05c94f39614297921fab..d02f95bb8e7dded726bd51612554fcdefc8846bb 100644
--- a/llama-index-packs/llama-index-packs-deeplake-deepmemory-retriever/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-deeplake-deepmemory-retriever/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DeepMemoryRetrieverPack"]
+contains_example = false
+import_path = "llama_index.packs.deeplake_deepmemory_retriever"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-deeplake-multimodal-retrieval/pyproject.toml b/llama-index-packs/llama-index-packs-deeplake-multimodal-retrieval/pyproject.toml
index 0fe36a0d008bf74fec24bc8d9faae1b4e848358a..5410ce6bb81df5050de50e09c2cf4107832994c7 100644
--- a/llama-index-packs/llama-index-packs-deeplake-multimodal-retrieval/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-deeplake-multimodal-retrieval/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DeepLakeMultimodalRetrieverPack"]
+contains_example = false
+import_path = "llama_index.packs.deeplake_multimodal_retrieval"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-dense-x-retrieval/pyproject.toml b/llama-index-packs/llama-index-packs-dense-x-retrieval/pyproject.toml
index 1bd1ceb6942b739a001fd46e07d3558dde3468a5..7b061be17570efa25d4be887ba1b2a1627b2f2ce 100644
--- a/llama-index-packs/llama-index-packs-dense-x-retrieval/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-dense-x-retrieval/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["DenseXRetrievalPack"]
+contains_example = true
+import_path = "llama_index.packs.dense_x_retrieval"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-evaluator-benchmarker/pyproject.toml b/llama-index-packs/llama-index-packs-evaluator-benchmarker/pyproject.toml
index 05bc735cd566e94707b729a189b0698d03e356ab..d68cec2ce5d237e0601059792c528a9cc5c49118 100644
--- a/llama-index-packs/llama-index-packs-evaluator-benchmarker/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-evaluator-benchmarker/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["EvaluatorBenchmarkerPack"]
+contains_example = false
+import_path = "llama_index.packs.evaluator_benchmarker"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-fusion-retriever/pyproject.toml b/llama-index-packs/llama-index-packs-fusion-retriever/pyproject.toml
index 593de0a5576cf7ce01916e0ef28959665c26a750..be94c38e519e3b19a59d2f599a1aa1ba67bd755d 100644
--- a/llama-index-packs/llama-index-packs-fusion-retriever/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-fusion-retriever/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["HybridFusionRetrieverPack", "QueryRewritingRetrieverPack"]
+contains_example = false
+import_path = "llama_index.packs.fusion_retriever"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-fuzzy-citation/pyproject.toml b/llama-index-packs/llama-index-packs-fuzzy-citation/pyproject.toml
index eeb797bbd3e318f8645bc8b63ba26f047f7f29a5..c24c7491f25b8a4b83a68b7ad42526d24a75653b 100644
--- a/llama-index-packs/llama-index-packs-fuzzy-citation/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-fuzzy-citation/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["FuzzyCitationEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.fuzzy_citation"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-gmail-openai-agent/pyproject.toml b/llama-index-packs/llama-index-packs-gmail-openai-agent/pyproject.toml
index e73047222ac290619fb58663f5eaef1e9acde90f..2c19d720d4d38faa0522c84da43a2814a6e10ce8 100644
--- a/llama-index-packs/llama-index-packs-gmail-openai-agent/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-gmail-openai-agent/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GmailOpenAIAgentPack"]
+contains_example = false
+import_path = "llama_index.packs.gmail_openai_agent"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-gradio-agent-chat/pyproject.toml b/llama-index-packs/llama-index-packs-gradio-agent-chat/pyproject.toml
index 30f02cb36f9e668f1fcc9510a5ee9c21577200ce..44178ee25cfdbfcff3dc6c6014dc2679eb10dfa3 100644
--- a/llama-index-packs/llama-index-packs-gradio-agent-chat/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-gradio-agent-chat/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GradioAgentChatPack"]
+contains_example = false
+import_path = "llama_index.packs.gradio_agent_chat"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-gradio-react-agent-chatbot/pyproject.toml b/llama-index-packs/llama-index-packs-gradio-react-agent-chatbot/pyproject.toml
index feb3023595d726558723b1b3a63213573cdc82f5..d986cf9a80a7b57593a88bf289f04233c440ac7a 100644
--- a/llama-index-packs/llama-index-packs-gradio-react-agent-chatbot/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-gradio-react-agent-chatbot/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["GradioReActAgentPack"]
+contains_example = false
+import_path = "llama_index.packs.gradio_react_agent_chatbot"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-infer-retrieve-rerank/pyproject.toml b/llama-index-packs/llama-index-packs-infer-retrieve-rerank/pyproject.toml
index 2bb834f0d32f78f886fe0dbcc4516a196b6f7c35..e03461dd11e6194e8f5f39abf45540c1eee18de9 100644
--- a/llama-index-packs/llama-index-packs-infer-retrieve-rerank/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-infer-retrieve-rerank/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["InferRetrieveRerankPack"]
+contains_example = false
+import_path = "llama_index.packs.infer_retrieve_rerank"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-llama-dataset-metadata/pyproject.toml b/llama-index-packs/llama-index-packs-llama-dataset-metadata/pyproject.toml
index 46831eb8dd46cd35bd3457eeca5fb25dc920f294..d7f1059b5b07c99d112414e70b8a0bebc672ddd1 100644
--- a/llama-index-packs/llama-index-packs-llama-dataset-metadata/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-llama-dataset-metadata/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LlamaDatasetMetadataPack"]
+contains_example = false
+import_path = "llama_index.packs.llama_dataset_metadata"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-llama-guard-moderator/pyproject.toml b/llama-index-packs/llama-index-packs-llama-guard-moderator/pyproject.toml
index cebae9f7a6912270ecc699be5bb6c5ad75352a11..179aaa79a5a1067f13450db7ea41d0e9448efb8e 100644
--- a/llama-index-packs/llama-index-packs-llama-guard-moderator/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-llama-guard-moderator/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LlamaGuardModeratorPack"]
+contains_example = false
+import_path = "llama_index.packs.llama_guard_moderator"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-llava-completion/pyproject.toml b/llama-index-packs/llama-index-packs-llava-completion/pyproject.toml
index f9ee51e68b209ea81f835f3062d945fede9700cb..512154b1fe7b9c2b5213ab1d42610bc7e0f9ba0c 100644
--- a/llama-index-packs/llama-index-packs-llava-completion/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-llava-completion/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LlavaCompletionPack"]
+contains_example = false
+import_path = "llama_index.packs.llava_completion"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-multi-document-agents/pyproject.toml b/llama-index-packs/llama-index-packs-multi-document-agents/pyproject.toml
index 87bdc22acbbe6a9acf3bcfff4ab27ea8c56bd1f6..1343eb0765b21f930abc3fba5ac43cb05ef8ab01 100644
--- a/llama-index-packs/llama-index-packs-multi-document-agents/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-multi-document-agents/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MultiDocumentAgentsPack"]
+contains_example = false
+import_path = "llama_index.packs.multi_document_agents"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-multi-tenancy-rag/pyproject.toml b/llama-index-packs/llama-index-packs-multi-tenancy-rag/pyproject.toml
index e9bf8c7ca7ba10fe361a3789dbccbc6c756d809b..2ba336951583abc02e0857730ed470ee8bbe4841 100644
--- a/llama-index-packs/llama-index-packs-multi-tenancy-rag/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-multi-tenancy-rag/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MultiTenancyRAGPack"]
+contains_example = false
+import_path = "llama_index.packs.multi_tenancy_rag"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-multidoc-autoretrieval/pyproject.toml b/llama-index-packs/llama-index-packs-multidoc-autoretrieval/pyproject.toml
index 74520d09ed2ecdf3becccbe0a665f9ecc8e52d47..55672a9b1679ed974eb52ad0f75679511ec937c3 100644
--- a/llama-index-packs/llama-index-packs-multidoc-autoretrieval/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-multidoc-autoretrieval/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["MultiDocAutoRetrieverPack"]
+contains_example = false
+import_path = "llama_index.packs.multidoc_autoretrieval"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-nebulagraph-query-engine/pyproject.toml b/llama-index-packs/llama-index-packs-nebulagraph-query-engine/pyproject.toml
index bff114f911b73edb07ced8d23ac73cf00cc46c17..887bab2233da13a00356fd076612ead72a4b98a0 100644
--- a/llama-index-packs/llama-index-packs-nebulagraph-query-engine/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-nebulagraph-query-engine/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["NebulaGraphQueryEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.nebulagraph_query_engine"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-neo4j-query-engine/pyproject.toml b/llama-index-packs/llama-index-packs-neo4j-query-engine/pyproject.toml
index b1345f406da8c6205f61e3fcfb8d1bcb0ba7b55c..8a428e79aba5d8839cf3b1d7451555e605683419 100644
--- a/llama-index-packs/llama-index-packs-neo4j-query-engine/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-neo4j-query-engine/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["Neo4jQueryEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.neo4j_query_engine"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-node-parser-semantic-chunking/pyproject.toml b/llama-index-packs/llama-index-packs-node-parser-semantic-chunking/pyproject.toml
index 7aa76d69f1ada8beb4dfa46714c7ada26b83e3b4..2c4a45149889f425cc81b2d93bb5aa99790bcb4f 100644
--- a/llama-index-packs/llama-index-packs-node-parser-semantic-chunking/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-node-parser-semantic-chunking/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SemanticChunkingQueryEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.node_parser_semantic_chunking"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-ollama-query-engine/pyproject.toml b/llama-index-packs/llama-index-packs-ollama-query-engine/pyproject.toml
index 28853131e190c64690b73d31814464d233f8f4d6..69e8d189725ff35e97d5ba098f39b4df19c03785 100644
--- a/llama-index-packs/llama-index-packs-ollama-query-engine/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-ollama-query-engine/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["OllamaQueryEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.ollama_query_engine"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-panel-chatbot/pyproject.toml b/llama-index-packs/llama-index-packs-panel-chatbot/pyproject.toml
index 635890da7d7c385507b9a1a58a0f37e3db2a4d61..3c97659022146d6002a0d20ac7badf144c00f619 100644
--- a/llama-index-packs/llama-index-packs-panel-chatbot/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-panel-chatbot/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["PanelChatPack"]
+contains_example = false
+import_path = "llama_index.packs.panel_chatbot"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-rag-cli-local/pyproject.toml b/llama-index-packs/llama-index-packs-rag-cli-local/pyproject.toml
index dca03a5592ace7bf9989ba946a0d434839316506..e7f4d86d962d727e295af24c341d48dc626f987b 100644
--- a/llama-index-packs/llama-index-packs-rag-cli-local/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-rag-cli-local/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["LocalRAGCLIPack"]
+contains_example = false
+import_path = "llama_index.packs.rag_cli_local"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-rag-evaluator/pyproject.toml b/llama-index-packs/llama-index-packs-rag-evaluator/pyproject.toml
index 8fdf0ff72205bb09b0a5b88531f0b67f3f46472c..40e4ec591f076a62d5753508f6e2fa315a718fa1 100644
--- a/llama-index-packs/llama-index-packs-rag-evaluator/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-rag-evaluator/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RagEvaluatorPack"]
+contains_example = true
+import_path = "llama_index.packs.rag_evaluator"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-rag-fusion-query-pipeline/pyproject.toml b/llama-index-packs/llama-index-packs-rag-fusion-query-pipeline/pyproject.toml
index 0b2523b449eedfb92caed39f782e1c755d0c4028..323af0e27e79313630e4054a1e9ab06edbb4659e 100644
--- a/llama-index-packs/llama-index-packs-rag-fusion-query-pipeline/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-rag-fusion-query-pipeline/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RAGFusionPipelinePack"]
+contains_example = true
+import_path = "llama_index.packs.rag_fusion_query_pipeline"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-ragatouille-retriever/pyproject.toml b/llama-index-packs/llama-index-packs-ragatouille-retriever/pyproject.toml
index 227c756fa67541b98870f6afbd8667adf024d00a..db9599c5f55e952c66ea1473d52da6683f3fba77 100644
--- a/llama-index-packs/llama-index-packs-ragatouille-retriever/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-ragatouille-retriever/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RAGatouilleRetrieverPack"]
+contains_example = false
+import_path = "llama_index.packs.ragatouille_retriever"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-recursive-retriever/pyproject.toml b/llama-index-packs/llama-index-packs-recursive-retriever/pyproject.toml
index d5232e01960906d2f10e88d0910b9ce9892fc1fa..038bd98d606a1639186d4c5c964998edde32a95d 100644
--- a/llama-index-packs/llama-index-packs-recursive-retriever/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-recursive-retriever/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["EmbeddedTablesUnstructuredRetrieverPack", "RecursiveRetrieverSmallToBigPack"]
+contains_example = false
+import_path = "llama_index.packs.recursive_retriever"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-redis-ingestion-pipeline/pyproject.toml b/llama-index-packs/llama-index-packs-redis-ingestion-pipeline/pyproject.toml
index 08bb88ee993d6083c63e8f9343212b281083f7b7..76e84c2c4dc7cb12d01436310c7e675bc4b27e71 100644
--- a/llama-index-packs/llama-index-packs-redis-ingestion-pipeline/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-redis-ingestion-pipeline/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["RedisIngestionPipelinePack"]
+contains_example = false
+import_path = "llama_index.packs.redis_ingestion_pipeline"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-resume-screener/pyproject.toml b/llama-index-packs/llama-index-packs-resume-screener/pyproject.toml
index 0488d7074ba504331527cd6f3d6ae2e144815841..9ab6f9e46df670b7d723e457c84f6cc280c51a26 100644
--- a/llama-index-packs/llama-index-packs-resume-screener/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-resume-screener/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ResumeScreenerPack"]
+contains_example = false
+import_path = "llama_index.packs.resume_screener"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-retry-engine-weaviate/pyproject.toml b/llama-index-packs/llama-index-packs-retry-engine-weaviate/pyproject.toml
index 3a8e9f58888856c8b419d3023fc08aa9f8eb9c90..0c20e03811117f2ab57237a40bd0f8f5ae72f739 100644
--- a/llama-index-packs/llama-index-packs-retry-engine-weaviate/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-retry-engine-weaviate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WeaviateRetryEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.retry_engine_weaviate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-self-rag/pyproject.toml b/llama-index-packs/llama-index-packs-self-rag/pyproject.toml
index 5152b9e91bb034a802fd4edf89221b7ac763354d..128e27c5888f15db223472b8016230b56893ee52 100644
--- a/llama-index-packs/llama-index-packs-self-rag/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-self-rag/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SelfRAGPack", "SelfRAGQueryEngine"]
+contains_example = false
+import_path = "llama_index.packs.self_rag"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-sentence-window-retriever/pyproject.toml b/llama-index-packs/llama-index-packs-sentence-window-retriever/pyproject.toml
index fae2ae50082f70efff3cc938f29d0c9e51806d3d..6471c45a1be4f60b65dee34ec292779e37c6ad5b 100644
--- a/llama-index-packs/llama-index-packs-sentence-window-retriever/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-sentence-window-retriever/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SentenceWindowRetrieverPack"]
+contains_example = false
+import_path = "llama_index.packs.sentence_window_retriever"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-snowflake-query-engine/pyproject.toml b/llama-index-packs/llama-index-packs-snowflake-query-engine/pyproject.toml
index d8bb2c5d2cdc955b7419656c6466cd4b46b06dfb..5d1b579fcba4c1a8fc186ffb8bc97d3206243ff6 100644
--- a/llama-index-packs/llama-index-packs-snowflake-query-engine/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-snowflake-query-engine/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["SnowflakeQueryEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.snowflake_query_engine"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-stock-market-data-query-engine/pyproject.toml b/llama-index-packs/llama-index-packs-stock-market-data-query-engine/pyproject.toml
index 4f86797bbf2832c9c50d9aa51f17ef368ab0e8d1..0fd6b7bbf0914f9aba2687ef31e9b95a03422737 100644
--- a/llama-index-packs/llama-index-packs-stock-market-data-query-engine/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-stock-market-data-query-engine/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["StockMarketDataQueryEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.stock_market_data_query_engine"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-streamlit-chatbot/pyproject.toml b/llama-index-packs/llama-index-packs-streamlit-chatbot/pyproject.toml
index bf20700351e059c2f12839a06521ebf426b97f6d..0aae46c96d6846b3c4dbd18acc9c206a8a7fa75d 100644
--- a/llama-index-packs/llama-index-packs-streamlit-chatbot/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-streamlit-chatbot/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["StreamlitChatPack"]
+contains_example = false
+import_path = "llama_index.packs.streamlit_chatbot"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-sub-question-weaviate/pyproject.toml b/llama-index-packs/llama-index-packs-sub-question-weaviate/pyproject.toml
index 76a3fb84961d98c06e1b365c25c6acba3b37dfca..afa85e24292816528d20fc86f8cd19ea3eb7b595 100644
--- a/llama-index-packs/llama-index-packs-sub-question-weaviate/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-sub-question-weaviate/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["WeaviateSubQuestionPack"]
+contains_example = false
+import_path = "llama_index.packs.sub_question_weaviate"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-tables/pyproject.toml b/llama-index-packs/llama-index-packs-tables/pyproject.toml
index 9ab8615da44d3117d362c6a78eb1cb8cc57408b2..6239d4e22ad03cbe7ff56ac88fecb934e1cea70c 100644
--- a/llama-index-packs/llama-index-packs-tables/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-tables/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ChainOfTablePack", "MixSelfConsistencyPack"]
+contains_example = false
+import_path = "llama_index.packs.tables"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-timescale-vector-autoretrieval/pyproject.toml b/llama-index-packs/llama-index-packs-timescale-vector-autoretrieval/pyproject.toml
index 6cdaa0c9ea7f6a9a1a8aeb553d8e7af5a510c378..a4bb97836f8469ac217f8fd1af531548c31eb039 100644
--- a/llama-index-packs/llama-index-packs-timescale-vector-autoretrieval/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-timescale-vector-autoretrieval/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TimescaleVectorAutoretrievalPack"]
+contains_example = false
+import_path = "llama_index.packs.timescale_vector_autoretrieval"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-trulens-eval-packs/pyproject.toml b/llama-index-packs/llama-index-packs-trulens-eval-packs/pyproject.toml
index c741420e54ca6bc62ab6d1f150f3d5c13c08244b..b1113a65f583e6db6c0035949f1f100796f96420 100644
--- a/llama-index-packs/llama-index-packs-trulens-eval-packs/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-trulens-eval-packs/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["TruLensHarmlessPack", "TruLensHelpfulPack", "TruLensRAGTriadPack"]
+contains_example = false
+import_path = "llama_index.packs.trulens_eval_packs"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-vanna/pyproject.toml b/llama-index-packs/llama-index-packs-vanna/pyproject.toml
index 89201ccc0b286669a94e6ac347bec2d229473cda..8e702e7ee4743ee11c4bb420af24828fb4f6182f 100644
--- a/llama-index-packs/llama-index-packs-vanna/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-vanna/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["VannaPack", "VannaQueryEngine"]
+contains_example = false
+import_path = "llama_index.packs.vanna"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-vectara-rag/pyproject.toml b/llama-index-packs/llama-index-packs-vectara-rag/pyproject.toml
index 08e852e856410b680e5a6c7035313ddf76a0ee31..f5d41d3ce1db0fdd4241a50fbb037119af707bc9 100644
--- a/llama-index-packs/llama-index-packs-vectara-rag/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-vectara-rag/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["VectaraRagPack"]
+contains_example = false
+import_path = "llama_index.packs.vectara_rag"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-voyage-query-engine/pyproject.toml b/llama-index-packs/llama-index-packs-voyage-query-engine/pyproject.toml
index 89b0aefdd9395fdf9eb62dc654b2e9f36105ad60..f24a197fb8812885c3a5cc5a0c6cbe3fb59e7b3c 100644
--- a/llama-index-packs/llama-index-packs-voyage-query-engine/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-voyage-query-engine/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["VoyageQueryEnginePack"]
+contains_example = true
+import_path = "llama_index.packs.voyage_query_engine"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]
diff --git a/llama-index-packs/llama-index-packs-zephyr-query-engine/pyproject.toml b/llama-index-packs/llama-index-packs-zephyr-query-engine/pyproject.toml
index 5ca68556208d867ac44df37283cbdfa9cd75aba5..5470ff453a8dce64ea589fe2504a63df1283ad3a 100644
--- a/llama-index-packs/llama-index-packs-zephyr-query-engine/pyproject.toml
+++ b/llama-index-packs/llama-index-packs-zephyr-query-engine/pyproject.toml
@@ -7,6 +7,11 @@ check-filenames = true
 check-hidden = true
 skip = "*.csv,*.html,*.json,*.jsonl,*.pdf,*.txt,*.ipynb"
 
+[tool.llamahub]
+classes = ["ZephyrQueryEnginePack"]
+contains_example = false
+import_path = "llama_index.packs.zephyr_query_engine"
+
 [tool.mypy]
 disallow_untyped_defs = true
 exclude = ["_static", "build", "examples", "notebooks", "venv"]