---
title: Fanuc SDK documentation
---

# Fanuc SDK documentation

## Get started

- [Get started with .NET](/fanuc/documentation/get-started-net) : Code your application in C# or VB with this 100% managed library, without dependencies and available on NuGet.org in the version and architecture of your choice (x86, x64, ARM, Linux, Windows, MacOS, .NET Framework, .NET Core, UWP, ...)
- [Get started with Python](/fanuc/documentation/get-started-python) : Fanuc Python SDK provides a simple and efficient way to control Fanuc robots using Python. No additional installations are required on the robot controller.
- [Get started with LabVIEW](/fanuc/documentation/get-started-labview) : Fanuc LabVIEW Library enables seamless integration with Fanuc robots for automation, data exchange, and remote control. Nothing to install on the controller. Compatible with LabVIEW 2010-2024.
- [Connect to your robot](/fanuc/documentation/connect) : Learn how to configure connection parameters, enable protocols, and connect to a real Fanuc robot or ROBOGUIDE simulation.
- [Licensing](/fanuc/documentation/license) : To be used, this SDK is subject to licensing. You have 30 days to test it for free.

## CGTP

- [CGTP overview](/fanuc/documentation/cgtp) : CGTP is an HTTP-based protocol providing the richest feature set: program management, variables, registers, I/O, kinematics, batch operations, and file access.
- [Program management](/fanuc/documentation/cgtp-programs) : Create, delete, rename, run, pause, abort programs and manage their attributes (comment, owner, subtype) via CGTP.
- [Registers & variables](/fanuc/documentation/cgtp-registers-variables) : Read and write numeric, position, and string registers, system variables, and perform batch operations via CGTP.
- [Inputs & Outputs](/fanuc/documentation/cgtp-io) : Read, write, simulate, and unsimulate digital, analog, group, and robot I/O ports via CGTP.
- [Position & kinematics](/fanuc/documentation/cgtp-position-kinematics) : Read current Cartesian and joint positions, and compute forward and inverse kinematics directly on the controller via CGTP.
- [Alarms, comments & files](/fanuc/documentation/cgtp-alarms-files) : Manage user alarms, read/write register and I/O comments, list and download files from the controller via CGTP.

## SNPX

- [SNPX overview](/fanuc/documentation/snpx) : SNPX (also known as RobotIF or SRTP) is a high-speed protocol for reading and writing registers, variables, I/O signals, alarms, and positions in less than 2 ms.
- [Registers](/fanuc/documentation/snpx-registers) : Read and write numeric registers (R[]), position registers (PR[]), string registers (SR[]), and flags (F[]) via SNPX.
- [Inputs & Outputs](/fanuc/documentation/snpx-io) : Read and write digital signals (SDI, SDO, RDI, RDO, UI, UO, SI, SO, WI, WO) and numeric I/O (GI, GO, AI, AO) via SNPX.
- [System variables](/fanuc/documentation/snpx-variables) : Read and write integer, real, position, and string system variables on the Fanuc controller via SNPX.
- [Current position](/fanuc/documentation/snpx-position) : Read the current robot position in world coordinates or user frame coordinates, for single or multi-group controllers.
- [Alarms & task status](/fanuc/documentation/snpx-alarms-tasks) : Read active alarms, alarm history, clear alarms, monitor running tasks, and read/write comments via SNPX.
- [Batch reading](/fanuc/documentation/snpx-batch) : Read groups of registers, variables, or signals in a single command for maximum performance using SNPX batch assignments.

## Telnet

- [Telnet overview](/fanuc/documentation/telnet) : Telnet KCL (Keyboard Command Line) allows you to send commands to a Fanuc robot: run programs, reset alarms, read/write variables, control I/O ports, and more.
- [Enable Telnet on your robot](/fanuc/documentation/telnet-enable-on-robot) : TELNET is natively available on ROBOGUIDE and all Fanuc robots without any option. Learn how to enable it step by step.
- [Program control via Telnet](/fanuc/documentation/telnet-program-control) : Run, pause, hold, continue, and abort TP and Karel programs remotely using Telnet KCL commands.
- [Variables & I/O via Telnet](/fanuc/documentation/telnet-variables-io) : Read and write system variables, set output ports, simulate and unsimulate input ports using Telnet KCL.
- [Debugging & breakpoints](/fanuc/documentation/telnet-debugging) : Add, remove, and manage breakpoints on TP and Karel programs. Step through code line by line using Telnet KCL.

## FTP

- [FTP overview](/fanuc/documentation/ftp) : FTP provides access to internal controller files including variables, programs, diagnostics, safety status, and current position.
- [File management](/fanuc/documentation/ftp-file-management) : Upload, download, delete, rename files and directories on the Fanuc robot controller via FTP.
- [Diagnostics & variables](/fanuc/documentation/ftp-diagnostics) : Read safety status, current position, I/O state, installed features, error history, registers, and system variables via FTP.

## RMI

- [RMI overview](/fanuc/documentation/rmi) : RMI (Remote Motion Interface) is a TCP-based protocol for sending motion commands, managing frames, and controlling the robot remotely.
- [Motion commands](/fanuc/documentation/rmi-motion) : Send linear, joint, and circular motion commands with configurable speed, termination type, and acceleration via RMI.
- [Frames, I/O & status](/fanuc/documentation/rmi-frames-io) : Manage user frames and tools, read/write I/O, read positions, set speed override, and get controller status via RMI.

## Stream Motion

- [Stream Motion (J519)](/fanuc/documentation/stream-motion) : Stream Motion is Fanuc's real-time streaming motion control interface over UDP. Send continuous motion commands at 125Hz or 250Hz for smooth, coordinated motion.

## Offline tools

- [Forward & Inverse Kinematics](/fanuc/documentation/kinematics) : Perform forward and inverse kinematics calculations offline for FANUC industrial robots and CRX cobots using DH parameters.
- [Offline file parsing](/fanuc/documentation/offline-file-parsing) : Parse and decode Fanuc variable files (.va), error lists (.ls), I/O state, safety status, and current position files without a robot connection.

## How-To Articles

- [Read & write registers](/fanuc/documentation/how-to-read-write-fanuc-registers) : Compare all methods to read and write numeric, position, and string registers on a Fanuc robot: SNPX, FTP, CGTP, and Telnet.
- [Get current position](/fanuc/documentation/get-current-position) : Retrieve the current robot position (joint and Cartesian) using SNPX, FTP, CGTP, or Telnet. Compare approaches and choose the best for your use case.
- [Control inputs & outputs](/fanuc/documentation/set-and-simulate-inputs-outputs) : Set, read, simulate, and unsimulate I/O ports on a Fanuc robot using SNPX, CGTP, or Telnet. Compare port types and methods.
- [Run a program remotely](/fanuc/documentation/run-program-remotely) : Start, pause, abort, and monitor Fanuc programs remotely using Telnet, CGTP, SNPX system variables, or RMI.
- [Reset alarms remotely](/fanuc/documentation/how-to-reset-fanuc-alarm-remotely) : Clear and reset alarms on a Fanuc robot using SNPX, Telnet, or CGTP. Read active alarms and alarm history.
- [Read & write system variables](/fanuc/documentation/read-write-system-variables) : Access and modify Fanuc system variables ($RMT_MASTER, $MCR.$GENOVERRIDE, etc.) using Telnet, SNPX, CGTP, or FTP.
- [Monitor task execution](/fanuc/documentation/monitor-task-execution) : Supervise running programs, check task states, line numbers, and calling programs using SNPX, FTP, or Telnet.
- [Move robot remotely](/fanuc/documentation/move-robot-remotely) : Move a Fanuc robot from an external application using RMI motion commands, Stream Motion real-time streaming, or DPM with SNPX.
- [Upload, download & backup files](/fanuc/documentation/upload-download-backup-files) : Transfer TP programs, variable files, and backups between your PC and a Fanuc controller using FTP or CGTP.
- [Read & write I/O comments](/fanuc/documentation/read-write-io-comments) : Read and write comments (descriptions) for registers and I/O ports using SNPX or CGTP.
- [Access Karel program variables](/fanuc/documentation/access-karel-program-variables) : Read and write Karel program variables using SNPX ($[Program]Variable syntax), CGTP, or FTP variable files.
- [Optimize with batch operations](/fanuc/documentation/optimize-performance-batch-operations) : Maximize read/write performance using SNPX batch assignments and CGTP batch variables for high-frequency data exchange.
- [Move robot with mouse](/fanuc/documentation/move-robot-with-mouse) : Control a FANUC robot in real time using Dynamic Path Modification (DPM) and SNPX. Ideal for joystick or 6D mouse teleoperation setups.
- [TP editor with breakpoints](/fanuc/documentation/tp-editor-with-breakpoints) : Prototype your own TP Editor with syntax highlighting and breakpoint debugging using Telnet and FTP features.
- [Legal notice & acknowledgements](/fanuc/documentation/credits) : Legal notice and acknowledgements for the UnderAutomation Fanuc SDK.
