Knowledge Graph Tools
DrugClaw/DrugClaw
Drug-discovery knowledge-graph workflow guide for assembling drug-target-disease-pathway relationship graphs from OpenTargets GraphQL, ChEMBL REST, STRING PPI, and Reactome pathway APIs, then…
Adds a new visualization engine or style to the visualization module.
$ npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install FabioYanezRomero/Knowledge-Graph-Builder add-visualization --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/FabioYanezRomero/Knowledge-Graph-Builder.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agent/skills/add-visualization .claude/skills/add-visualization && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "add-visualization" agent skill from https://github.com/FabioYanezRomero/Knowledge-Graph-Builder/tree/main/.agent/skills/add-visualization into .claude/skills/add-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-visualization", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/FabioYanezRomero/Knowledge-Graph-Builder/tree/main/.agent/skills/add-visualizationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install FabioYanezRomero/Knowledge-Graph-Builder add-visualization --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FabioYanezRomero/Knowledge-Graph-Builder.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agent/skills/add-visualization .agents/skills/add-visualization && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-visualization" agent skill from https://github.com/FabioYanezRomero/Knowledge-Graph-Builder/tree/main/.agent/skills/add-visualization into .agents/skills/add-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-visualization", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install FabioYanezRomero/Knowledge-Graph-Builder add-visualization --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FabioYanezRomero/Knowledge-Graph-Builder.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agent/skills/add-visualization .cursor/skills/add-visualization && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-visualization" agent skill from https://github.com/FabioYanezRomero/Knowledge-Graph-Builder/tree/main/.agent/skills/add-visualization into .cursor/skills/add-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-visualization", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/FabioYanezRomero/Knowledge-Graph-Builder.git --path .agent/skills/add-visualization--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install FabioYanezRomero/Knowledge-Graph-Builder add-visualization --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FabioYanezRomero/Knowledge-Graph-Builder.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agent/skills/add-visualization .gemini/skills/add-visualization && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-visualization" agent skill from https://github.com/FabioYanezRomero/Knowledge-Graph-Builder/tree/main/.agent/skills/add-visualization into .gemini/skills/add-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-visualization", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install FabioYanezRomero/Knowledge-Graph-Builder add-visualizationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/FabioYanezRomero/Knowledge-Graph-Builder.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agent/skills/add-visualization .github/skills/add-visualization && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-visualization" agent skill from https://github.com/FabioYanezRomero/Knowledge-Graph-Builder/tree/main/.agent/skills/add-visualization into .github/skills/add-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-visualization", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install FabioYanezRomero/Knowledge-Graph-Builder add-visualization --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/FabioYanezRomero/Knowledge-Graph-Builder.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agent/skills/add-visualization .opencode/skills/add-visualization && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-visualization" agent skill from https://github.com/FabioYanezRomero/Knowledge-Graph-Builder/tree/main/.agent/skills/add-visualization into .opencode/skills/add-visualization/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-visualization", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-visualizationAdds a new visualization engine or style to the visualization module.
Add Visualization is an agent skill from FabioYanezRomero/Knowledge-Graph-Builder. Adds a new visualization engine or style to the visualization module.
Its SKILL.md is about 3.3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Knowledge Management. It works with NetworkX. The repository describes itself as: Repository for building knowledge graphs from specific datasets using generative language model through ollama. The licence is MIT.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 588f0d9. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Add Visualization loads about 3.3k tokens when it runs. Until then it costs about 22 tokens; SKILL.md has 441 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from FabioYanezRomero/Knowledge-Graph-Builder at commit 588f0d9, republished under its MIT licence (© FabioYanezRomero). 441 words, ~3,343 tokens.
.claude/skills/add-visualization/SKILL.md (or your agent's skills folder).This skill documents how to add a new visualization type to the kgb/visualization/ module.
Visualizations render knowledge graphs as interactive HTML. The system provides:
graph_viz.py) — Cytoscape.js + NetworkX graph with origin-based coloring, node dragging, search/filter, and context menustext_viz.py) — langextract-based entity highlighting in source text Visualization Module
┌────────────────────────────────────────────────────┐
│ │
│ graph_viz.py text_viz.py │
│ ├─ render_graph() ├─ TextVisualizer │
│ ├─ batch_render_graphs() │ ├─ render_triples_ │
│ │ │ │ in_text() │
│ │ Cytoscape.js │ ├─ save_html() │
│ │ Node/edge topology │ └─ batch_render() │
│ │ Origin coloring │ │
│ │ (Extracted/Augmented) │ langextract-based │
│ │ Node dragging │ Entity highlighting │
│ │ Search/filter │ │
│ │ Context menus │ │
│ │ │ │
│ │ your_viz.py │
│ │ └─ Your new visualization │
│ │ │
│ └─────────────────────────────────────────────────┘
Data Flow:
list[Triple] or GraphML → Graph Construction → Layout → Rendering → HTMLKey Files:
kgb/visualization/graph_viz.py — Graph topology (Cytoscape.js + NetworkX)kgb/visualization/text_viz.py — Text entity highlighting (langextract)kgb/visualization/__init__.py — Public exportsRequired:
networkx>=3.0 — Graph data structures and layout computationOptional:
langextract — For text-based entity highlightingrender_graph()Key features to understand:
nx.Graph | str | Path | list[Triple] | list[dict]edge_attrs.get("inference") == "contextual" to classifyTextVisualizerKey features:
AnnotatedDocument for visualizationFollow the patterns from existing visualizations:
Function-based (like render_graph):
def visualize_<type>(
data: Path | list[Triple] | nx.Graph,
output_path: Path | str,
*,
dark_mode: bool = False,
**kwargs: Any
) -> Path:Class-based (like TextVisualizer):
class YourVisualizer:
def __init__(self, config_option: type = default, ...) -> None: ...
def render(self, data, **kwargs) -> str: ...
def save_html(self, data, output_path, **kwargs) -> Path: ...
def batch_render(self, records, output_dir, **kwargs) -> list[Path]: ...Create kgb/visualization/timeline_viz.py:
"""Timeline visualization for temporal knowledge graphs."""
from __future__ import annotations
from pathlib import Path
from typing import Any
from datetime import datetime
import networkx as nx
import plotly.graph_objects as go
from ..domains import Triple
def visualize_timeline(
data: Path | list[Triple] | list[dict[str, Any]],
output_path: Path | str,
*,
dark_mode: bool = False,
date_field: str = "date",
height: int = 600,
**kwargs: Any
) -> Path:
"""Generate interactive timeline visualization.
Args:
data: GraphML path or list of triples with date attributes
output_path: Output HTML file path
dark_mode: Use dark color theme
date_field: Attribute name containing dates
height: Canvas height in pixels
Returns:
Path to created HTML file
Raises:
ValueError: If data format is invalid or dates missing
FileNotFoundError: If GraphML path doesn't exist
"""
output_path = Path(output_path)
# 1. Load Data
if isinstance(data, Path):
if not data.exists():
raise FileNotFoundError(f"GraphML file not found: {data}")
G = nx.read_graphml(str(data))
events = _extract_events_from_graph(G, date_field)
elif isinstance(data, list):
events = _extract_events_from_triples(data, date_field)
else:
raise ValueError(f"Unsupported data type: {type(data)}")
if not events:
raise ValueError(f"No events with '{date_field}' attribute found")
# 2. Theme Configuration (follow graph_viz.py pattern)
theme = {
"bg": "#0f172a" if dark_mode else "#ffffff",
"text": "#f1f5f9" if dark_mode else "#1e293b",
"grid": "#334155" if dark_mode else "#e2e8f0",
"accent": "#3b82f6",
}
# 3. Build Timeline Figure
fig = go.Figure()
sorted_events = sorted(events, key=lambda e: e["date"])
dates = [e["date"] for e in sorted_events]
labels = [e["label"] for e in sorted_events]
hovers = [e["hover"] for e in sorted_events]
fig.add_trace(go.Scatter(
x=dates,
y=[1] * len(dates),
mode="markers+text",
marker=dict(size=12, color=theme["accent"]),
text=labels,
textposition="top center",
hovertext=hovers,
hoverinfo="text"
))
# 4. Apply Theme
fig.update_layout(
title="Knowledge Graph Timeline",
height=height,
paper_bgcolor=theme["bg"],
plot_bgcolor=theme["bg"],
font=dict(color=theme["text"]),
xaxis=dict(showgrid=True, gridcolor=theme["grid"], title="Date"),
yaxis=dict(visible=False),
showlegend=False
)
# 5. Save HTML
output_path.parent.mkdir(parents=True, exist_ok=True)
fig.write_html(str(output_path))
return output_path
def _extract_events_from_triples(triples, date_field):
"""Extract timeline events from triples."""
events = []
for t in triples:
if isinstance(t, Triple):
t = t.model_dump()
date_str = t.get(date_field)
if not date_str:
continue
try:
date = datetime.fromisoformat(str(date_str))
except ValueError:
continue
events.append({
"date": date,
"label": f"{t.get('head', '')} -> {t.get('tail', '')}",
"hover": f"<b>{t.get('relation', '')}</b><br>{t.get('head')} -> {t.get('tail')}"
})
return events
def _extract_events_from_graph(G, date_field):
"""Extract timeline events from a NetworkX graph."""
events = []
for u, v, attrs in G.edges(data=True):
date_str = attrs.get(date_field)
if not date_str:
continue
try:
date = datetime.fromisoformat(str(date_str))
except ValueError:
continue
events.append({
"date": date,
"label": f"{u} -> {v}",
"hover": f"<b>{attrs.get('relation', '')}</b><br>{u} -> {v}"
})
return eventsNote: This timeline example uses Plotly (appropriate for time-series charts). The main graph visualization (
graph_viz.py) uses Cytoscape.js. New visualizations can use any library.
Update kgb/visualization/__init__.py:
from .graph_viz import render_graph, batch_render_graphs
from .text_viz import TextVisualizer
from .timeline_viz import visualize_timeline # Add this
__all__ = [
"render_graph",
"batch_render_graphs",
"TextVisualizer",
"visualize_timeline", # Add this
]Update kgb/__main__.py (follow the pattern of visualize_network and visualize_extraction):
@visualize_app.command("timeline")
def visualize_timeline_cmd(
input_dir: Path = typer.Option(..., "--input", "-i", exists=True),
output_dir: Optional[Path] = typer.Option(None, "--output", "-o"),
dark_mode: bool = typer.Option(False, "--dark-mode"),
date_field: str = typer.Option("date", "--date-field"),
height: int = typer.Option(600, "--height"),
):
"""Create timeline visualization from extracted triples."""
import json
from .visualization import visualize_timeline
viz_dir = output_dir or input_dir.parent / "visualizations_timeline"
viz_dir.mkdir(parents=True, exist_ok=True)
for json_file in input_dir.glob("*.json"):
try:
with open(json_file) as f:
triples = json.load(f)
output_path = viz_dir / f"{json_file.stem}.html"
visualize_timeline(
data=triples,
output_path=output_path,
dark_mode=dark_mode,
date_field=date_field,
height=height
)
console.print(f"Created: {output_path}")
except ValueError as e:
console.print(f"[yellow]Skipped {json_file.name}: {e}[/yellow]")
except Exception as e:
console.print(f"[red]Error {json_file.name}: {e}[/red]")See existing
visualize_networkandvisualize_extractioncommands inkgb/__main__.pyfor complete reference.
python -c "from kgb.visualization import visualize_timeline; print('OK')"def test_visualize_timeline_from_triples(tmp_path):
from kgb.visualization.timeline_viz import visualize_timeline
triples = [
{"head": "EventA", "relation": "occurred", "tail": "LocationX",
"inference": "explicit", "date": "2024-01-15"},
{"head": "EventB", "relation": "happened", "tail": "LocationY",
"inference": "explicit", "date": "2024-02-20"},
]
output = tmp_path / "timeline.html"
result = visualize_timeline(triples, output)
assert result.exists()
html = result.read_text()
assert "plotly" in html.lower()
def test_timeline_no_dates(tmp_path):
from kgb.visualization.timeline_viz import visualize_timeline
import pytest
triples = [{"head": "A", "relation": "r", "tail": "B", "inference": "explicit"}]
with pytest.raises(ValueError, match="No events"):
visualize_timeline(triples, tmp_path / "no_dates.html")
def test_timeline_dark_mode(tmp_path):
from kgb.visualization.timeline_viz import visualize_timeline
triples = [
{"head": "A", "relation": "r", "tail": "B",
"inference": "explicit", "date": "2024-01-01"},
]
output = tmp_path / "dark.html"
result = visualize_timeline(triples, output, dark_mode=True)
assert result.exists()| Parameter | Type | Default | Description |
|---|---|---|---|
dark_mode | bool | False | Use dark color theme |
date_field | str | "date" | Attribute name containing dates |
height | int | 600 | Canvas height in pixels |
| Principle | Implementation |
|---|---|
| Dark Mode | Use theme dict with conditional colors (follow graph_viz.py pattern) |
| Type Safety | Accept Path | list[Triple] | list[dict] with isinstance checks |
| Self-Containment | Use CDN scripts (cytoscape.js, dagre, cxtmenu) for portability |
| Error Handling | Raise ValueError for invalid inputs, FileNotFoundError for missing files |
| Inference Awareness | Use inference.value (not str(inference)) — "explicit" / "contextual" |
| File | Action |
|---|---|
kgb/visualization/your_viz.py | Create — visualization implementation |
kgb/visualization/__init__.py | Modify — add imports and exports |
kgb/__main__.py | Modify — add CLI subcommand |
mkdir(parents=True, exist_ok=True)kgb/visualization/__init__.pyvisualize_app© FabioYanezRomero, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agent/skills/add-visualization of FabioYanezRomero/Knowledge-Graph-Builder.
Open the folder on GitHubat commit 588f0d9
Add Visualization next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Add Visualization this skillFabioYanezRomero/Knowledge-Graph-Builder | 103 | — | ~3.3k | Automated safety check: Pass | MIT | |
| Knowledge Graph ToolsDrugClaw/DrugClaw | 126 | — | ~1.7k | Automated safety check: Pass | Apache-2.0 | |
| NetworkxzLanqing/codex-claude-academic-skills | 4.7k | 15 repos | ~3.2k | Automated safety check: Pass | BSD-3-Clause | |
| Logseq Review Workflow Evallogseq/logseq | 45k | — | ~1k | Automated safety check: Pass | AGPL-3.0 | |
| Baoyu URL To Markdownsdyckjq-lab/llm-wiki-skill | 2.5k | 2 repos | ~3.2k | Automated safety check: Pass | None | |
| Obsidian CLIAtmosphere/atmosphere | 3.8k | 13 repos | ~795 | Automated safety check: Pass | Apache-2.0 |
DrugClaw/DrugClaw
Drug-discovery knowledge-graph workflow guide for assembling drug-target-disease-pathway relationship graphs from OpenTargets GraphQL, ChEMBL REST, STRING PPI, and Reactome pathway APIs, then…
zLanqing/codex-claude-academic-skills
Comprehensive toolkit for creating, analyzing, and visualizing complex networks and graphs in Python.
logseq/logseq
Compare two revisions of the Logseq logseq-review-workflow skill by running the same review prompt against isolated before and after skill snapshots, collecting both outputs, and producing a…
sdyckjq-lab/llm-wiki-skill
Fetch any URL and convert to markdown using Chrome CDP. An agent skill from sdyckjq-lab/llm-wiki-skill.
Atmosphere/atmosphere
Interact with Obsidian vaults using the Obsidian CLI to read, create, search, and manage notes, tasks, properties, and more.
logseq/logseq
Scan Logseq ClojureScript Node/Electron targets for npm module loading risks, especially ESM-only packages that may fail when loaded through js/require or shadow-cljs require-based shims.
FabioYanezRomero/Knowledge-Graph-Builder
Adds a new LLM client provider to the clients module. An agent skill from FabioYanezRomero/Knowledge-Graph-Builder.
FabioYanezRomero/Knowledge-Graph-Builder
Adds a new iterative augmentation strategy (e.g., enrichment, summarization) to the builder module.
FabioYanezRomero/Knowledge-Graph-Builder
Adds a new output format converter (e.g., CSV, RDF) to the IO writers module.
FabioYanezRomero/Knowledge-Graph-Builder
Adds a new input format loader (e.g., Parquet, Excel) to the IO readers module.
FabioYanezRomero/Knowledge-Graph-Builder
Manage knowledge domains (e.g., Medical, Finance). An agent skill from FabioYanezRomero/Knowledge-Graph-Builder.
Works with
Categories
Adds a new visualization engine or style to the visualization module. Add Visualization is an agent skill from FabioYanezRomero/Knowledge-Graph-Builder. Adds a new visualization engine or style to the visualization module.
Add Visualization fits situations like: knowledge Management work in your project.
Run `npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a claude-code`. Or copy the skill folder (.agent/skills/add-visualization in FabioYanezRomero/Knowledge-Graph-Builder) into .claude/skills/add-visualization in your project. Claude Code loads it when a task matches its description.
Run `npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a codex`. Or copy the skill folder (.agent/skills/add-visualization in FabioYanezRomero/Knowledge-Graph-Builder) into .agents/skills/add-visualization in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add FabioYanezRomero/Knowledge-Graph-Builder --skill add-visualization -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-visualization, .gemini/skills/add-visualization, .github/skills/add-visualization and .opencode/skills/add-visualization in your project.
Going by SKILL.md and its folder, Add Visualization needs the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Add Visualization is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Add Visualization: Knowledge Graph Tools (DrugClaw/DrugClaw, 126 stars), Networkx (zLanqing/codex-claude-academic-skills, 4.7k stars), Logseq Review Workflow Eval (logseq/logseq, 45k stars) and Baoyu URL To Markdown (sdyckjq-lab/llm-wiki-skill, 2.5k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
FabioYanezRomero (a GitHub user) maintains it in FabioYanezRomero/Knowledge-Graph-Builder, which has 103 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on August 28, 2026.
Source: FabioYanezRomero/Knowledge-Graph-Builder on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.