Extend Fiddler with .NET Code

Use Fiddler's extensibility mechanisms to add to Fiddler's UI, automatically modify requests or responses, and create custom Inspectors that enable scenario-specific display and manual-modification of requests and responses.


  • Visual Studio .NET 2005+ or the free .NET Framework v2 command-line compilers
  • The most recent version of Fiddler
  • For Visual Studio 2010 or later: Change the project to target the .NET2.0/3.5 framework.
  • If targeting .NET Framework 3.5: Ensure user has .NET Framework 3.5 installed.
  • If extending 64bit Fiddler: Target AnyCPU.

See Build extension assemblies to run in both Fiddler 2 and 4.


Direct Fiddler to load extension assemblies

  • To make the extensions available to all users on the machine, install extension assembly DLLs to:

      %Program Files%\Fiddler2\Scripts
  • To make the extensions available to only the current user, install extension assembly DLLs to:

      %USERPROFILE%\My Documents\Fiddler2\Scripts
  • Set the Fiddler.RequiredVersion attribute in your AssemblyInfo.cs file (or elsewhere in your code) as follows:

      using Fiddler;
      // Extension requires Fiddler because it uses types introduced in v2.2.8...
      [assembly: Fiddler.RequiredVersion("")]

Sample Extension: Step by Step

  1. Start Visual Studio 2005 or later.

  2. Create a new Project of type Visual C# Class Library.

  3. Right-click the project's References folder in the Solution Explorer.

  4. Click the Browse tab and select Fiddler.exe in the C:\Program Files\Fiddler2 folder.

  5. Click Ok to add the reference.

  6. If your extension modifies Fiddler's UI:

  • Right-click the project's References folder in the Solution Explorer again

  • On the .NET tab, choose System.Windows.Forms.

  • Click Ok to add the reference.

  • In the Solution Explorer, right click the project. Choose Properties.

  • On the Build Events tab, add the following to the Post-build event command line:

    copy "$(TargetPath)" "%userprofile%\My Documents\Fiddler2\Scripts$(TargetFilename)"

Modify the default class1.cs (or create a new class) in your project as follows:

using System;
using System.Windows.Forms;
using Fiddler;

[assembly: Fiddler.RequiredVersion("")]

public class Violin : IAutoTamper    // Ensure class is public, or Fiddler won't see it!
  string sUserAgent = "";

  public Violin(){
  /* NOTE: It's possible that Fiddler UI isn't fully loaded yet, so don't add any UI in the constructor.

     But it's also possible that AutoTamper* methods are called before OnLoad (below), so be
     sure any needed data structures are initialized to safe values here in this constructor */
     sUserAgent = "Violin";

  public void OnLoad(){ /* Load your UI here */ }
  public void OnBeforeUnload() { }

  public void AutoTamperRequestBefore(Session oSession){
    oSession.oRequest["User-Agent"] = sUserAgent;
  public void AutoTamperRequestAfter(Session oSession){}
  public void AutoTamperResponseBefore(Session oSession){}
  public void AutoTamperResponseAfter(Session oSession){}
  public void OnBeforeReturningError(Session oSession){}