DevKit Sync
DevKit Sync setup is optional during SDK installation, and the installer already prompts you for it. Use this page as a reference for how DevKit Sync works, or when you want to change the SDK pairing to a different DevKit later.
DevKit Sync connects the Neat Development Environment (referred to as Neat SDK)
with a Modalix DevKit on the same network. It exposes one shared workspace
across the host, Neat SDK container, and DevKit, and it provides the dk helper
for running SDK-built commands on hardware.
The same workspace is mounted into the Neat SDK container
and the DevKit as /workspace, so build artifacts, logs, traces, and model
files are visible from each environment.
Configure DevKit Sync
If you skipped DevKit pairing during installation or need to change it later, run this setup command from the host:
sima-cli sdk setup --devkit {devkit-ip}During setup:
- Select the installed
sdk:v2.1-latestimage if more than one SDK image is present. - Accept the default
/workspaceDevKit mount path unless you need a different path. - Enter the host admin password when prompted for NFS server setup on the host.
- Enter the DevKit user credentials when prompted. The default user is
simaand the default password isedgeai. - Starting with SDK 2.1.2.2, setup can fall back to rsync-over-SSH when NFS cannot be configured between the host and DevKit.
When setup succeeds, you should see output similar to:
============================================================
DevKit Connected
============================================================
DevKit target : sima@192.168.91.221:22
Mounted path : /workspace
Host export : 192.168.74.48:/Users/joey/workspace
You can now run DevKit binaries from this SDK shell:
dk /workspace/<path-to-arm64-binary> [args...]
============================================================
From inside the SDK shell, use dk status to confirm the paired DevKit and the
active workspace sync method:
dk statusUpdate the Pairing from the SDK
Use this flow when the Neat SDK is already installed and you need to pair a different DevKit or update the pairing after your DevKit IP address changed.
From inside the Neat SDK container, run:
source devkit.sh {devkit-ip}Replace {devkit-ip} with the IP address of the DevKit you want to use.
Example:
source devkit.sh 192.168.91.221Configure SDK Without DevKit Sync
If the DevKit is not reachable from the Neat SDK host, you can still configure the SDK workspace without pairing:
sima-cli sdk setupYou can still build binaries in the Neat SDK container, but you must transfer them to the DevKit manually for testing. Make sure the DevKit is running a compatible Neat Library version.
File Sharing with DevKit Sync
DevKit Sync connects three environments:
- Host
- Neat SDK container
- DevKit
sima-cli sdk setup --devkit {devkit-ip} configures NFS so the same workspace is
available in all three environments:
- The host workspace folder is exported through host NFS.
- The folder is mounted into the Neat SDK container as
/workspace. - The same content appears on the DevKit as
/workspacethrough NFS. - The mounted folder name defaults to
/workspaceand can be changed during setup.
This setup provides a direct workflow for build artifacts:
- Artifacts produced in the Neat SDK are immediately visible on the DevKit without a separate deploy step.
- Agents can access logs, outputs, traces, and other interim files generated while the app runs on the DevKit.
- Developers and agents can inspect the same files from one workspace context.
With Insight, you can view the workspace from a web browser. Some SiMa.ai
specific model archives, such as *.tar.gz model artifacts, are automatically
optimized for easier inspection.
Rsync Fallback
Starting with SDK 2.1.2.2, DevKit Sync can use rsync-over-SSH as a fallback when NFS setup does not succeed. This is useful on networks or hosts where SSH to the DevKit works, but the host NFS export cannot be mounted by the DevKit.
When rsync fallback is active:
- The host and SDK container still use the local
/workspacedirectory. - The DevKit uses a synchronized remote workspace, normally
/workspace-rsync. dk statusreportsSync method : rsyncand shows the local and remote workspace paths.dk <file> [args...]maps paths from the SDK workspace to the DevKit rsync workspace before running the command remotely.- Before
dkruns a file, it automatically syncs the top-level workspace folder that contains that file. For example,dk apps/demo.pysyncs the/workspace/appsfolder before executing the DevKit-side copy.
Check the current pairing and sync method:
dk statusManually sync the current workspace scope:
dk syncSync a specific file or folder scope:
dk sync /workspace/appsSync the full workspace:
dk sync --allWhen rsync fallback is active, keep the files needed by one dk command under
the same top-level workspace folder. If a command is launched from
/workspace/apps, arguments that point into /workspace/models are outside the
auto-synced scope and should be synced separately with dk sync /workspace/models, or the project should be organized so required files live
under the same top-level folder.
Run on the DevKit with dk
The SDK includes the dk helper, also known as devkit-run, to run ARM64
executables on the paired DevKit from inside the SDK shell.
When you invoke dk, the SDK runs the command on the paired DevKit and
translates paths so file arguments from the container resolve correctly on the
DevKit.
dk [args...]After compiling a C++ application in the SDK workspace, run the generated ARM64 executable on the DevKit:
dk build/sima_neat_helloAfter creating or copying a Python script into the SDK workspace, run it on the paired DevKit:
dk hello_neat.pyFor Python scripts, dk runs the script on the paired DevKit and uses the
DevKit PyNeat runtime environment. The SDK remains useful as a unified
workspace and orchestration environment, but Python-only workflows do not
require the C++ cross-compilation toolchain.
dk Comes Fromdk is a shell function defined in ~/devkit-sync.rc inside the SDK container.
The shell loads it through ~/.bashrc, so it is available in interactive
sessions.
Next Step
To install or update the library/runtime itself, continue to Neat Library.