tik4net.ssh 4.0.0-alpha

This is a prerelease version of tik4net.ssh.
dotnet add package tik4net.ssh --version 4.0.0-alpha
                    
NuGet\Install-Package tik4net.ssh -Version 4.0.0-alpha
                    
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="tik4net.ssh" Version="4.0.0-alpha" />
                    
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="tik4net.ssh" Version="4.0.0-alpha" />
                    
Directory.Packages.props
<PackageReference Include="tik4net.ssh" />
                    
Project file
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add tik4net.ssh --version 4.0.0-alpha
                    
#r "nuget: tik4net.ssh, 4.0.0-alpha"
                    
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package tik4net.ssh@4.0.0-alpha
                    
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=tik4net.ssh&version=4.0.0-alpha&prerelease
                    
Install as a Cake Addin
#tool nuget:?package=tik4net.ssh&version=4.0.0-alpha&prerelease
                    
Install as a Cake Tool

tik4net

tik4net is a .NET netstandard2.0 library for communicating with MikroTik routers — enabling use in .NET Framework 4.6.1+, .NET Core 2.0+, .NET 5/6/7/8/9, Xamarin, and Unity. It offers a clean, easy-to-use interface that scales from low-level raw API access all the way up to a fully typed O/R mapper. Tested and debugged against RouterOS 7.21.4 (latest stable).

🆕 Many new connection types! Beyond the classic API, tik4net now drives the router over REST, Telnet, SSH, MAC-Telnet, and WinBox (terminal + native-M2, over IP or MAC layer). See Connection types and capabilities. tik4net is the only .NET library that speaks MAC-Telnet and the WinBox protocols.

Package NuGet Description
tik4net NuGet Low-level ADO.NET-like API — synchronous and async R/W access
tik4net.entities NuGet High-level O/R mapper — strongly typed entities, full CRUD. Pulls in tik4net automatically.
tik4net.testing NuGet Unit-testing support — TikFakeConnection lets you write tests without a live router
tik4net.ssh will be published in the 4.x release SSH (TCP 22) transport — drives the RouterOS CLI over an SSH shell (full CRUD, Listen, Safe Mode). A separate package because of its Renci.SshNet dependency.

Tools — semi-automatic C# code generators for custom entities (used with tik4net.entities). The repo also ships an MCP server exposing a mikrotik_call tool that lets an AI assistant run a command against a live router over any tik4net transport.

Features

  • Easy to use with O/R mapper like highlevel API
  • Low level access supported by low level API
  • Stable interface and backward compatibility
  • Broad range of .NET runtimes supported (including .NET core 2 and Xamarin)
  • New mikrotik v.6.43 login process supported
  • Includes MNDP discovery helper
  • Easy to understand and well documented code

Connection types

All transports share the same ITikConnection API and O/R mapper — pick one via TikConnectionType. See Connection types and capabilities.

  • Api — native MikroTik API protocol (TCP 8728); the default, fastest transport with full Listen/Streaming support.
  • ApiSsl — the API protocol over TLS (TCP 8729), using a certificate on the router.
  • Rest / RestSsl — REST API over HTTP (80) / HTTPS (443); requires RouterOS 7.1+.
  • Ssh — drives the RouterOS CLI over an SSH shell (TCP 22); full CRUD plus Listen and Safe Mode.
  • Telnet — drives the RouterOS CLI over plain-text Telnet (TCP 23); full CRUD.
  • MacTelnet — drives the CLI over MAC-Telnet (UDP 20561), reaching the router with no IP route.
  • WinboxCli / WinboxCliMac — drives the CLI over the encrypted WinBox channel (TCP 8291 / MAC layer).
  • WinboxNative / WinboxNativeMac — structured WinBox M2 CRUD with no terminal (TCP 8291 / MAC layer).

Binaries

Install via NuGet — see the package table above, or:

dotnet add package tik4net.entities  # high-level API (pulls in tik4net)
dotnet add package tik4net           # low-level API only
dotnet add package tik4net.testing   # unit-testing support
# dotnet add package tik4net.ssh     # SSH (TCP 22) transport — will be published in the 4.x release

See release notes / version history for what's new.

Getting started and documentation

Mikrotik API wiki:

Project wiki:

Examples:

   using (ITikConnection connection = ConnectionFactory.CreateConnection(TikConnectionType.Api)) // TikConnectionType.Api works for both old and new (v6.43+) login
   {
      connection.Open(HOST, USER, PASS);
   ITikCommand cmd = connection.CreateCommand("/system/identity/print");
   var identity = cmd.ExecuteScalar(); 
   Console.WriteLine("Identity: {0}", identity);
   var logs = connection.LoadList<Log>();
   foreach (Log log in logs)
   {
       Console.WriteLine("{0}[{1}]: {2}", log.Time, log.Topics, log.Message);
   }
   var firewallFilter = new FirewallFilter()
   {
      Chain = FirewallFilter.ChainType.Forward,
      Action = FirewallFilter.ActionType.Accept,
   };
   connection.Save(firewallFilter);
   ITikCommand torchCmd = connection.CreateCommand("/tool/torch", 
      connection.CreateParameter("interface", "ether1"), 
      connection.CreateParameter("port", "any"),
      connection.CreateParameter("src-address", "0.0.0.0/0"),
      connection.CreateParameter("dst-address", "0.0.0.0/0"));

  torchCmd.ExecuteAsync(response =>
      {
         Console.WriteLine("Row: " + response.GetResponseField("tx"));
      });
  Console.WriteLine("Press ENTER");
  Console.ReadLine();
  torchCmd.Cancel();

Looking for help

  • I am looking for collaborators. If you are interested in helping maintain this project, please reach out — open an issue or contact me directly.
  • Looking for betatesters

Roadmap & future

  • create highlevel classes for all mikrotik entities (you can still generate your own classes)
  • create tiklink project - easy use-to wrapper over mikrotik router with fluent API
  • convert examples to separate unittests (in progress)
  • tiktop — a MikroTik traffic monitor inspired by Linux iftop (currently in alpha, available on NuGet/GitHub)

REMARKS: This project is rewritten version of deprecated tik4net at googlecode (last version was 0.9.7.)

Licenses

  • Apache 2.0.
Product Compatible and additional computed target framework versions.
.NET net5.0 was computed.  net5.0-windows was computed.  net6.0 was computed.  net6.0-android was computed.  net6.0-ios was computed.  net6.0-maccatalyst was computed.  net6.0-macos was computed.  net6.0-tvos was computed.  net6.0-windows was computed.  net7.0 was computed.  net7.0-android was computed.  net7.0-ios was computed.  net7.0-maccatalyst was computed.  net7.0-macos was computed.  net7.0-tvos was computed.  net7.0-windows was computed.  net8.0 was computed.  net8.0-android was computed.  net8.0-browser was computed.  net8.0-ios was computed.  net8.0-maccatalyst was computed.  net8.0-macos was computed.  net8.0-tvos was computed.  net8.0-windows was computed.  net9.0 was computed.  net9.0-android was computed.  net9.0-browser was computed.  net9.0-ios was computed.  net9.0-maccatalyst was computed.  net9.0-macos was computed.  net9.0-tvos was computed.  net9.0-windows was computed.  net10.0 was computed.  net10.0-android was computed.  net10.0-browser was computed.  net10.0-ios was computed.  net10.0-maccatalyst was computed.  net10.0-macos was computed.  net10.0-tvos was computed.  net10.0-windows was computed. 
.NET Core netcoreapp2.0 was computed.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
.NET Standard netstandard2.0 is compatible.  netstandard2.1 was computed. 
.NET Framework net461 was computed.  net462 was computed.  net463 was computed.  net47 was computed.  net471 was computed.  net472 was computed.  net48 was computed.  net481 was computed. 
MonoAndroid monoandroid was computed. 
MonoMac monomac was computed. 
MonoTouch monotouch was computed. 
Tizen tizen40 was computed.  tizen60 was computed. 
Xamarin.iOS xamarinios was computed. 
Xamarin.Mac xamarinmac was computed. 
Xamarin.TVOS xamarintvos was computed. 
Xamarin.WatchOS xamarinwatchos was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

NuGet packages

This package is not used by any NuGet packages.

GitHub repositories

This package is not used by any popular GitHub repositories.

Version Downloads Last Updated
4.0.0-alpha 34 6/16/2026