Batfish Config Analysis logo

Batfish Config Analysis

Community
automateyournetwork
batfish-config-analysis

Batfish network configuration analysis -- pre-deployment validation, reachability testing, ACL/firewall tracing, differential analysis, compliance checking. Use when validating configs before deployment, testing traffic paths, tracing ACL rules, comparing config versions, or auditing compliance policies. Strictly read-only.

Overview

Publisherautomateyournetwork
Repositorynetclaw
Skill namebatfish-config-analysis
Stars
680
Forks
189
Bundled files
Instructions only
LicenseApache-2.0
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by automateyournetwork on GitHub. Read the source before you install it.

Installation

Install the Batfish Config Analysis AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/batfish-config-analysis
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/automateyournetwork/netclaw.git /tmp/netclaw
mkdir -p .claude/skills
cp -r /tmp/netclaw/workspace/skills/batfish-config-analysis .claude/skills/batfish-config-analysis
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Batfish Config Analysis in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Batfish Config Analysis on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Batfish Config Analysis is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Batfish Configuration Analysis

MCP Server

  • Source: Built-in (mcp-servers/batfish-mcp/)
  • Command: python3 -u mcp-servers/batfish-mcp/batfish_mcp_server.py (stdio transport)
  • Requires: Batfish Docker container running, BATFISH_HOST and BATFISH_PORT environment variables
  • Python: 3.10+
  • Dependencies: pybatfish, mcp[cli], python-dotenv

Available Tools (8)

ToolParametersWhat It Does
batfish_upload_snapshotsnapshot_name, configs/config_path, networkUpload device configs to Batfish and create a named snapshot
batfish_validate_configsnapshot_name, networkValidate configs with per-device pass/fail status, vendor detection, warnings
batfish_test_reachabilitysnapshot_name, src_ip, dst_ip, protocol, dst_portTest if traffic can flow between two endpoints with full path trace
batfish_trace_aclsnapshot_name, device, filter_name, src_ip, dst_ip, protocol, dst_portTrace a packet through ACL rules to find matching permit/deny rule
batfish_diff_configsreference_snapshot, candidate_snapshot, include_routes, include_reachabilityCompare two snapshots for route and reachability differences
batfish_check_compliancesnapshot_name, policy_typeCheck configs against compliance policies (6 built-in policy types)
batfish_list_snapshotsnetworkList all available snapshots
batfish_delete_snapshotsnapshot_name, networkDelete a snapshot

Workflow: Pre-Change Validation

When a user wants to validate configurations before deployment:

  1. Upload configs: batfish_upload_snapshot with inline configs dict or path to config directory
  2. Validate: batfish_validate_config to check parse status, vendor detection, warnings/errors
  3. Test reachability: batfish_test_reachability for critical traffic paths
  4. Check compliance: batfish_check_compliance against organizational policies
  5. Report: Structured pass/fail results with specific findings
  6. GAIT: All operations automatically logged

Example: Validate Before Deploy

bash
# Upload proposed configs
batfish_upload_snapshot snapshot_name="pre-change-site-a" config_path="/path/to/configs/"

# Validate parse status
batfish_validate_config snapshot_name="pre-change-site-a"

# Test critical path
batfish_test_reachability snapshot_name="pre-change-site-a" src_ip="10.1.1.1" dst_ip="10.2.2.1" protocol="TCP" dst_port=443

# Check compliance
batfish_check_compliance snapshot_name="pre-change-site-a" policy_type="interface_descriptions"

Workflow: Change Impact Analysis

When comparing before/after configurations:

  1. Upload "before" snapshot: batfish_upload_snapshot with current configs
  2. Upload "after" snapshot: batfish_upload_snapshot with proposed configs
  3. Diff: batfish_diff_configs to find route and reachability differences
  4. Investigate: Use batfish_trace_acl on any newly denied traffic
  5. Report: Structured diff showing added/removed/changed routes and flows

Workflow: ACL Troubleshooting

When investigating access control issues:

  1. Upload configs: batfish_upload_snapshot with device configs
  2. Trace packet: batfish_trace_acl with device, ACL name, and packet headers
  3. Review: Identify matching rule, line number, permit/deny action
  4. Test alternatives: Modify config, re-upload, trace again

Integration with Other Skills

SkillIntegration
pyats-config-mgmtValidate configs with Batfish before pushing via pyATS
gait-session-trackingAll Batfish operations automatically logged
servicenow-change-workflowReference Batfish validation in change request evidence
fwrule-analyzerComplement ACL trace with cross-vendor overlap analysis
cml-lab-lifecycleValidate CML lab configs with Batfish analysis

Important Rules

  • All operations are strictly read-only -- Batfish analyzes uploaded configs, never modifies network devices
  • GAIT audit mandatory -- All operations logged automatically
  • Snapshots are ephemeral -- Batfish manages snapshot lifecycle; use GAIT for persistent records
  • Multi-vendor -- Supports Cisco IOS/IOS-XE/NX-OS, JunOS, Arista EOS, Palo Alto, F5

Error Handling

  • BATFISH_UNREACHABLE: Verify Docker container is running (docker ps | grep batfish)
  • SNAPSHOT_NOT_FOUND: Use batfish_list_snapshots to see available snapshots
  • INVALID_INPUT: Check configs dict is non-empty or config_path exists
  • DEVICE_NOT_FOUND: Use batfish_validate_config to list devices in snapshot
  • FILTER_NOT_FOUND: Verify ACL/filter name exists on the specified device

Environment Variables

  • BATFISH_HOST -- Batfish hostname (default: localhost)
  • BATFISH_PORT -- Batfish port (default: 9997)
  • BATFISH_NETWORK -- Default network name (default: netclaw)

Frequently asked questions

What does the Batfish Config Analysis AI skill do?

Batfish network configuration analysis -- pre-deployment validation, reachability testing, ACL/firewall tracing, differential analysis, compliance checking. Use when validating configs before deployment, testing traffic paths, tracing ACL rules, comparing config versions, or auditing compliance policies. Strictly read-only.

Why use Batfish Config Analysis on TypingMind?

Because you install it once and use it with any model. Batfish Config Analysis is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Batfish Config Analysis in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/automateyournetwork/netclaw/tree/main/workspace/skills/batfish-config-analysis. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Batfish Config Analysis?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Batfish Config Analysis?

As many as you like. As long as a model supports skills, you can use Batfish Config Analysis with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Batfish Config Analysis AI skill free?

Yes. It is published on GitHub by automateyournetwork under the Apache-2.0 license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇