Agent skill

Rsid SDK

by realsenseai in realsenseai/RealSenseID

RealSenseID face authentication SDK reference. An agent skill from realsenseai/RealSenseID.

Apache-2.0Auto-check passedBackend & APIs

Install Rsid SDK

skills CLI
$ npx skills add realsenseai/RealSenseID --skill rsid-sdk -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install realsenseai/RealSenseID rsid-sdk --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
rsid-sdk
GitHub stars
122
Token cost
~4.1k tokens
SKILL.md length
737 words
Files
667 (incl. scripts)
Skills in repo
1
Repo updated
First seen
Licence
Apache-2.0

At a glance

RealSenseID face authentication SDK reference. An agent skill from realsenseai/RealSenseID.

  • Works in 10 steps: Don't mix device mode and host mode. → Lifecycle: Connect → operate → destroy. → Always use DiscoverDevices() for… → …
  • Writing code for face enrollment
  • SKILL.md covers SDK Overview, Common AI Pitfalls, Device Discovery and Connection & Lifecycle, plus 9 more sections
  • Host-mode faceprint extraction/matching

What it does

Rsid SDK is an agent skill from realsenseai/RealSenseID. RealSenseID face authentication SDK reference. Use when writing code for face enrollment, authentication, host-mode faceprint extraction/matching, device configuration, user management, device discovery, camera preview, logging, or serial connection. Covers C++ (RealSenseID namespace), Python (rsidpy), and C (rsid).

Its SKILL.md is about 4.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 671 other files, including scripts (for example `3rdparty/libuvc-0.0.7-custom/README.md`).

It sits in Backend & APIs, covering Authentication. It works with C++, C#, Python and Java. The licence is Apache-2.0.

When your agent uses it

  • Writing code for face enrollment
  • Host-mode faceprint extraction/matching
  • Device configuration
  • User management

Example prompts

  • “/rsid-sdk”

Requirements

  • Python 3

Workflow steps

10 steps, taken from the first numbered list in SKILL.md.

  1. Don't mix device mode and host mode.
  2. Lifecycle: Connect → operate → destroy.
  3. Always use DiscoverDevices() for connection.
  4. Adaptive updates in host mode are mandatory.
  5. F50x-only APIs.
  6. Don't memcpy faceprint internals unsafely.
  7. Serial port name on Windows (COM10+).
  8. Preview requires RSID_PREVIEW=ON.
  9. On VersionMismatch, check compatibility — don't retry.
  10. Linux serial permissions.

What it can do on your machine

Read from SKILL.md and the folder at commit a646592. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/, which the agent can run.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Rsid SDK loads about 4.1k tokens when it runs. Until then it costs about 82 tokens; SKILL.md has 737 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~82
When it runs · the whole SKILL.md, loaded when a task matches
~4.1k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from realsenseai/RealSenseID at commit a646592, republished under its Apache-2.0 licence (© realsenseai). 737 words, ~4,117 tokens.

Download SKILL.mdSave it as .claude/skills/rsid-sdk/SKILL.md (or your agent's skills folder). This skill also uses 666 other files; get the full folder from GitHub.
name
rsid-sdk
description
RealSenseID face authentication SDK reference. Use when writing code for face enrollment, authentication, host-mode faceprint extraction/matching, device configuration, user management, device discovery, camera preview, logging, or serial connection. Covers C++ (RealSenseID namespace), Python (rsid_py), and C# (rsid).

RealSenseID SDK Reference

SDK Overview

  • Two operating modes:
    • Device mode — enroll/authenticate with on-device database and matcher
    • Host mode — device extracts faceprints only; host owns the database and calls MatchFaceprints()
  • Device families: F45x (F450/F455) and F50x (F500). Selected at construction or auto-detected at connect time.
  • Entry-point classes:
    • FaceAuthenticator — enroll, authenticate, host-mode faceprint extraction, matching
    • DeviceController — connect, reboot, query firmware version, serial number, ping, diagnostics
  • Connection model: Serial port. Always Connect() before any operation; destructor auto-disconnects (RAII).
  • Max user ID: 30 characters (31 bytes with null terminator).
  • Namespace/module: C++ RealSenseID, Python rsid_py, C# rsid.
  • Samples: See samples/ for complete working examples (C, C++, Python, C#).

Common AI Pitfalls

Read these before generating any RealSenseID code — these are patterns AI models frequently get wrong.

  1. Don't mix device mode and host mode. Device mode uses Enroll, Authenticate, RemoveUser (device DB + device matcher). Host mode uses ExtractFaceprints* + MatchFaceprints (host DB + host matcher). Never combine them in the same flow.

  2. Lifecycle: Connect → operate → destroy. Always Connect() first. Cancel any running loop (AuthenticateLoop, detection loops) before shutdown. C++ auto-disconnects via RAII; Python uses context managers; C# uses IDisposable.

  3. Always use DiscoverDevices() for connection. Never hardcode serial ports like COM9 or /dev/ttyACM0. Use the discovery API to find connected devices and their types.

  4. Adaptive updates in host mode are mandatory. If MatchFaceprints returns should_update == true, persist the updated faceprints. Do not overwrite DB entries unconditionally.

  5. F50x-only APIs. DetectPersons, DetectPoses, DetectBodyParts, DecodeBarcodes are F50x-only. On F45x expect Status::NotSupported.

  6. Don't memcpy faceprint internals unsafely. Treat faceprint struct layouts as SDK-defined and versioned. Only copy between documented fields.

  7. Serial port name on Windows (COM10+). High COM ports may require \\.\COM10 prefix. If Connect() fails with serial error, try this prefix.

  8. Preview requires RSID_PREVIEW=ON. If preview fails, confirm build flag, platform support, and correct camera index.

  9. On VersionMismatch, check compatibility — don't retry. Call IsFwCompatibleWithHost(...) to diagnose. Don't loop.

  10. Linux serial permissions. Ensure access to /dev/ttyACM* via udev rule or dialout group membership.

Device Discovery

Always enumerate devices before connecting — never hardcode ports.

cpp
#include "RealSenseID/DiscoverDevices.h"
auto devices = RealSenseID::DiscoverDevices();
for (auto& dev : devices) {
    // dev.serialPort, dev.deviceType, dev.serialNumber, dev.cameraNumber
}
auto type = RealSenseID::DiscoverDeviceType("/dev/ttyACM0");
auto captures = RealSenseID::DiscoverCapture();  // returns vector<int>
python
import rsid_py
devices = rsid_py.discover_devices()
for dev in devices:
    # dev.serial_port, dev.device_type, dev.serial_number, dev.camera_number
csharp
var devices = rsid.Discover.DiscoverDevices();
foreach (var dev in devices) {
    // dev.SerialPort, dev.DeviceType, dev.SerialNumber, dev.CameraNumber
}

DeviceInfo fields: serial port path, DeviceType (F45x/F50x/Unknown), serial number string, camera number (0-based or -1).

Connection & Lifecycle

cpp
{
    auto devices = RealSenseID::DiscoverDevices();
    if (devices.empty()) { /* handle no device */ return; }
    auto& dev = devices.front();
    RealSenseID::FaceAuthenticator authenticator(dev.deviceType);
    auto status = authenticator.Connect({dev.serialPort});
    if (status != RealSenseID::Status::Ok) { /* handle error */ }
    // ... use authenticator ...
}   // auto-disconnects on destruction
python
devices = rsid_py.discover_devices()
if not devices:
    raise RuntimeError("No device found")
dev = devices[0]
with rsid_py.FaceAuthenticator(dev.device_type, dev.serial_port) as f:
    f.authenticate(on_result=on_result)
csharp
var devices = rsid.Discover.DiscoverDevices();
if (devices.Length == 0) throw new Exception("No device found");
var dev = devices[0];
using var auth = new rsid.Authenticator();
var status = auth.Connect(new rsid.SerialConfig { port = dev.SerialPort });

Device Mode — Enrollment & Authentication

Enrollment
cpp
class MyEnrollClbk : public RealSenseID::EnrollmentCallback {
public:
    void OnResult(const RealSenseID::EnrollStatus status) override { /* handle */ }
    void OnProgress(const RealSenseID::FacePose pose) override { /* handle */ }
    void OnHint(const RealSenseID::EnrollStatus hint, float frameScore) override { /* handle */ }
};
MyEnrollClbk clbk;
auto status = authenticator.Enroll(clbk, "john");
// Optional overrides: OnFaceDetected, OnLandmarksDetected, OnFaceCroppedImage
python
f.enroll(user_id="john", on_result=on_result, on_progress=on_progress, on_hint=on_hint)
csharp
auth.Enroll(new rsid.EnrollArgs {
    userId = "john", resultClbk = (s, ctx) => {}, progressClbk = (p, ctx) => {}, hintClbk = (h, sc, ctx) => {}
});

Image enrollment (BGR24, exactly one face in image, face width and height each >= 144 px): EnrollImage("john", buf, w, h) / enroll_image(...) / auth.EnrollImage(...).

Authentication
cpp
class MyAuthClbk : public RealSenseID::AuthenticationCallback {
public:
    void OnResult(RealSenseID::AuthenticateStatus status, const char* userId, short score) override {
        if (status == RealSenseID::AuthenticateStatus::Success)
            std::cout << "Auth: " << userId << std::endl;
    }
    void OnHint(RealSenseID::AuthenticateStatus hint, float frameScore) override {}
};
MyAuthClbk clbk;
authenticator.Authenticate(clbk);       // single attempt
authenticator.AuthenticateLoop(clbk);   // continuous until Cancel()
authenticator.Cancel();
// Optional overrides: OnFaceDetected, OnLandmarksDetected, OnFaceDistances,
//   OnPersonDetected, OnPoseDetected, OnBarcodeDecoded, OnFaceCroppedImage
python
def on_result(status, user_id):
    if status == rsid_py.AuthenticateStatus.Success:
        print('Auth:', user_id)
f.authenticate(on_result=on_result, on_hint=on_hint)
f.authenticate_loop(on_result=on_result, on_hint=on_hint)
f.cancel()
csharp
var args = new rsid.AuthArgs {
    resultClbk = (status, userId, score, ctx) => { /* handle */ },
    hintClbk = (hint, score, ctx) => { /* handle */ }
};
auth.Authenticate(args);
auth.AuthenticateLoop(args);
auth.Cancel();

C# marshalling helpers: Authenticator.MarshalFaces(), MarshalPersons(), MarshalPoses(), MarshalBarcodes().

Host Mode

Device extracts faceprints, host owns the database and performs matching. Pattern: extract → match → adaptive update.

C++ (full pattern)
cpp
// Step 1: Enroll — extract faceprints and store in DB
class EnrollExtractClbk : public RealSenseID::EnrollFaceprintsExtractionCallback {
public:
    RealSenseID::Faceprints db_entry;
    void OnResult(const RealSenseID::EnrollStatus status,
                  const RealSenseID::ExtractedFaceprints* fp) override {
        if (status != RealSenseID::EnrollStatus::Success) return;
        db_entry.data.version = fp->data.version;
        db_entry.data.flags = fp->data.flags;
        db_entry.data.featuresType = fp->data.featuresType;
        ::memcpy(db_entry.data.adaptiveDescriptorWithoutMask,
                 fp->data.featuresVector, sizeof(fp->data.featuresVector));
        ::memcpy(db_entry.data.enrollmentDescriptor,
                 fp->data.featuresVector, sizeof(fp->data.featuresVector));
    }
    void OnProgress(const RealSenseID::FacePose) override {}
    void OnHint(const RealSenseID::EnrollStatus, float) override {}
};
EnrollExtractClbk enroll_clbk;
authenticator.ExtractFaceprintsForEnroll(enroll_clbk);

// Step 2: Auth — extract faceprints from probe face
class AuthExtractClbk : public RealSenseID::AuthFaceprintsExtractionCallback {
public:
    RealSenseID::ExtractedFaceprints extracted;
    void OnResult(const RealSenseID::AuthenticateStatus status,
                  const RealSenseID::ExtractedFaceprints* fp) override {
        if (status == RealSenseID::AuthenticateStatus::Success) extracted = *fp;
    }
    void OnHint(const RealSenseID::AuthenticateStatus, float) override {}
};
AuthExtractClbk auth_clbk;
authenticator.ExtractFaceprintsForAuth(auth_clbk);
// Or continuous: authenticator.ExtractFaceprintsForAuthLoop(auth_clbk);

// Step 3: Match + adaptive update
RealSenseID::MatchElement scanned;
scanned.data.version = auth_clbk.extracted.data.version;
scanned.data.featuresType = auth_clbk.extracted.data.featuresType;
scanned.data.flags = RealSenseID::FaOperationFlagsEnum::OpFlagAuthWithoutMask;
::memcpy(scanned.data.featuresVector, auth_clbk.extracted.data.featuresVector,
         sizeof(auth_clbk.extracted.data.featuresVector));
RealSenseID::Faceprints updated;
auto result = authenticator.MatchFaceprints(scanned, enroll_clbk.db_entry, updated);
if (result.success && result.should_update)
    enroll_clbk.db_entry = updated;  // persist adaptive update
Python
python
def on_enroll(status, extracted):
    if status == rsid_py.EnrollStatus.Success:
        db = rsid_py.Faceprints()
        db.version, db.features_type, db.flags = extracted.version, extracted.features_type, extracted.flags
        db.adaptive_descriptor_nomask = extracted.features
        db.enroll_descriptor = extracted.features
        faceprints_db.append(db)
f.extract_faceprints_for_enroll(on_result=on_enroll, on_progress=lambda p: None)

def on_auth(status, new_prints):
    if status != rsid_py.AuthenticateStatus.Success: return
    for db_item in faceprints_db:
        updated = rsid_py.Faceprints()
        result = f.match_faceprints(new_prints, db_item, updated)
        if result.success:
            if result.should_update: db_item = updated  # adaptive update
            break
f.extract_faceprints_for_auth(on_result=on_auth)
C#
csharp
auth.EnrollExtractFaceprints(new rsid.EnrollExtractArgs {
    resultClbk = (status, fpHandle, ctx) => { /* marshal and store in DB */ },
    progressClbk = (pose, ctx) => { }, hintClbk = (hint, score, ctx) => { }
});
auth.AuthExtractFaceprints(new rsid.AuthExtractArgs {
    resultClbk = (status, fpHandle, ctx) => { /* marshal, match, adaptive update */ },
    hintClbk = (hint, score, ctx) => { }
});

Key types: ExtractedFaceprints (raw from device), Faceprints (DB element: adaptive + enrollment descriptors), MatchElement (input to match), MatchResultHost/MatchResult (success, should_update, score).

Adaptive update: When should_update is true, persist the updated faceprints. This improves recognition over time.

Show full SKILL.md (289 more words)Show less

User Management

cpp
unsigned int count;
authenticator.QueryNumberOfUsers(count);
char* user_ids[100];
for (auto& ptr : user_ids) ptr = new char[31];
unsigned int num = 100;
authenticator.QueryUserIds(user_ids, num);
authenticator.RemoveUser("john");
authenticator.RemoveAll();
python
users = f.query_user_ids()       # returns list[str]
f.remove_user("john")
f.remove_all_users()
csharp
auth.QueryUserIds(out string[] userIds);
auth.RemoveUser("john");
auth.RemoveAllUsers();

Device Configuration

DeviceConfig fields
FieldTypeDefault
camera_rotationCameraRotationRotation_0_Deg
security_levelSecurityLevelLow
algo_flowAlgoFlowFaceDetectionOnly
face_selection_policyFaceSelectionPolicySingle
dump_modeDumpModeNone
frontal_face_policyFrontalFacePolicyNone
person_motion_modePersonMotionModeStatic
distance_limit_cmuint80 (no limit, 1-150 = cm)
max_spoofsuint80 (disabled)
match_threshuint160 (device recommended)
gpio_auth_togglingint0 (disabled)
manual_exposure_time_usuint160 (auto)
manual_gainuint160 (auto)
rect_enableuint81 (enabled)
landmarks_enableuint80 (disabled)
detection_roiRoi{0, 0, 1080, 1920}
Enum values
  • CameraRotation: Rotation_0_Deg, Rotation_180_Deg, Rotation_90_Deg, Rotation_270_Deg
  • SecurityLevel: High, Medium, Low
  • AlgoFlow: All, FaceDetectionOnly, SpoofOnly, RecognitionOnly
  • FaceSelectionPolicy: Single (closest), All (up to 5)
  • DumpMode: None, CroppedFace, FullFrame. Python: DumpMode.Disable (not None)
  • FrontalFacePolicy: None, Moderate, Strict
  • PersonMotionMode: Static, Walkthrough
  • distance_limit_cm: 0 = no limit, 1-150 = max distance in centimeters

API: QueryDeviceConfig(config) / SetDeviceConfig(config). Python: query_device_config() / set_device_config(). C#: same names with out parameter.

Status Codes

Status: Ok, Error, SerialError, SecurityError, VersionMismatch, CrcError, TooManySpoofs, NotSupported, DatabaseFull, DuplicateUserId, DuplicateFaceprints, InvalidSettings

EnrollStatus: Success = Success. AuthenticateStatus: Success = Success.

All status enums have Description() (C++) and stream operator overload. Python enums print directly.

Advanced Detection (F50x only)

F50x-only APIs — returns Status::NotSupported on F45x. All accept a loop parameter; callback returns bool (true = continue). Use Cancel() to stop.

  • DetectPersons — bounding boxes with id, distance, body_part
  • DetectPoses — bounding boxes + 17 body keypoints
  • DetectBodyParts — body part detection
  • DecodeBarcodes — barcode reading

DeviceController

MethodDescription
Connect / DisconnectSerial connection (RAII auto-disconnects)
QueryFirmwareVersionFW version string
QuerySerialNumberDevice serial number
PingConnectivity check
RebootRestart device
GetTemperatureSoC + board temps
FetchLogDevice log (~128KB, ~12-14s)
Get/SetColorGainsCamera color gains (0-511)
QueryBspVerBSP version string
cpp
RealSenseID::DeviceController ctrl;
ctrl.Connect(RealSenseID::SerialConfig{dev.serialPort});
std::string fw_ver;
ctrl.QueryFirmwareVersion(fw_ver);
ctrl.Reboot();  // auto-disconnects on destruction
python
with rsid_py.DeviceController(port) as ctrl:
    print(ctrl.query_firmware_version())
    ctrl.reboot()

Power management (via FaceAuthenticator): Standby() (low-power, auto-wakes), Hibernate() (deep sleep, GPIO 10 or power reset to wake), Unlock() (after TooManySpoofs lock).

Version: RealSenseID::Version(), CompatibleFirmwareVersion(deviceType), IsFwCompatibleWithHost(deviceType, fw_ver).

Camera Preview (RSID_PREVIEW=ON)

cpp
RealSenseID::PreviewConfig config;
config.deviceType = RealSenseID::DeviceType::F45x;
config.cameraNumber = -1;  // auto-detect
config.previewMode = RealSenseID::PreviewMode::MJPEG_1080P;  // or MJPEG_720P, RAW10_1080P
config.portraitMode = true;

RealSenseID::Preview preview(config);
MyPreviewClbk clbk;  // implement PreviewImageReadyCallback::OnPreviewImageReady(const Image&)
preview.StartPreview(clbk);
// Image fields: buffer (RGB), width, height, stride, size, metadata (timestamp, exposure, gain)
preview.StopPreview();

Logging

cpp
RealSenseID::SetLogCallback([](RealSenseID::LogLevel level, const char* msg) {
    printf("[%d] %s\n", (int)level, msg);
}, RealSenseID::LogLevel::Debug, /*do_formatting=*/true);
python
rsid_py.set_log_callback(callback, log_level, do_formatting=True)

LogLevel: Trace, Debug, Info, Warning, Error, Critical, Off

© realsenseai, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 666 other files (scripts) in the repository root of realsenseai/RealSenseID.

  • SKILL.md
  • .clang-format
  • .clang-format-ignore
  • .gitignore
  • 3rdparty/libuvc-0.0.7-custom/CMakeLists.txt
  • 3rdparty/libuvc-0.0.7-custom/LICENSE.txt
  • 3rdparty/libuvc-0.0.7-custom/README.md
  • 3rdparty/libuvc-0.0.7-custom/cmake/AndroidLibUSB.cmake
  • 3rdparty/libuvc-0.0.7-custom/cmake/FindJpegPkg.cmake
  • 3rdparty/libuvc-0.0.7-custom/cmake/FindLibUSB.cmake
  • 3rdparty/libuvc-0.0.7-custom/cmake/FindOpenCVPkg.cmake
  • 3rdparty/libuvc-0.0.7-custom/include/libuvc/libuvc.h
  • 3rdparty/libuvc-0.0.7-custom/include/libuvc/libuvc_config.h.in
  • 3rdparty/libuvc-0.0.7-custom/include/libuvc/libuvc_internal.h
  • 3rdparty/libuvc-0.0.7-custom/include/utlist.h
  • 3rdparty/libuvc-0.0.7-custom/libuvc.pc.in
  • … and 651 more

Open the folder on GitHubat commit a646592

Compare with similar skills

Rsid SDK next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Rsid SDK compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Rsid SDK this skillrealsenseai/RealSenseID122—~4.1kAutomated safety check: PassApache-2.0
Genie API Service Docsqualcomm/qai-appbuilder247—~840Automated safety check: PassCustom licence
Subspace Clientsdallison/subspace104—~2.4kAutomated safety check: PassApache-2.0
Fory Performance Optimizationapache/fory4.6k—~2.2kAutomated safety check: PassApache-2.0
Sokol Netelix22/Sokol.NET154—~2.8kAutomated safety check: PassMIT
Code Revieweralirezarezvani/claude-skills28k1 repos~1.6kAutomated safety check: PassMIT

Similar skills

  • Genie API Service Docs

    qualcomm/qai-appbuilder

    GenieAPIService technical documentation retrieval. An agent skill from qualcomm/qai-appbuilder.

    247 GitHub stars~840 tokensUpdated today
    DevelopmentAuto-check passed
  • Subspace Clients

    dallison/subspace

    Write Subspace clients in C++, Python, Rust, or Java. An agent skill from dallison/subspace.

    104 GitHub stars~2.4k tokensUpdated yesterday
    Backend & APIsAuto-check passed
  • Run profile-driven bottleneck optimization across Apache Fory implementations (Java, C++, Python/Cython, Go, Rust, Swift, C, JavaScript/TypeScript, Dart, Kotlin, Scala).

    4.6k GitHub stars~2.2k tokensUpdated today
    MobileAuto-check passed
  • Sokol Net

    elix22/Sokol.NET

    Sokol.NET framework development — use for ANY work in this repo: creating or debugging examples, building/running for desktop/Android/iOS/Web, writing or compiling shaders, adding a new C/C++…

    154 GitHub stars~2.8k tokensUpdated 2 days ago
    Game DevelopmentAuto-check passed
  • Code Reviewer

    alirezarezvani/claude-skills

    Code review automation for TypeScript, JavaScript, Python, Go, Swift, Kotlin, C, .NET, Java, C, C++, Rust, Ruby, PHP, and Dart/Flutter.

    28k GitHub starsUsed in 1 repo~1.6k tokens
    DevelopmentAuto-check passed
  • Qai Appbuilder Docs

    qualcomm/qai-appbuilder

    QAI AppBuilder technical documentation retrieval. An agent skill from qualcomm/qai-appbuilder.

    247 GitHub stars~1.1k tokensUpdated today
    AI & LLM EngineeringAuto-check passed

Categories

Questions about Rsid SDK

What does Rsid SDK do?

RealSenseID face authentication SDK reference. An agent skill from realsenseai/RealSenseID. Rsid SDK is an agent skill from realsenseai/RealSenseID. RealSenseID face authentication SDK reference.

When should I use Rsid SDK?

Rsid SDK fits situations like: writing code for face enrollment; host-mode faceprint extraction/matching; device configuration; user management.

How do I install Rsid SDK in Claude Code?

Run `npx skills add realsenseai/RealSenseID --skill rsid-sdk -a claude-code`. Or copy the skill folder (the realsenseai/RealSenseID repository) into .claude/skills/rsid-sdk in your project. Claude Code loads it when a task matches its description.

How do I install Rsid SDK in Codex?

Run `npx skills add realsenseai/RealSenseID --skill rsid-sdk -a codex`. Or copy the skill folder (the realsenseai/RealSenseID repository) into .agents/skills/rsid-sdk in your project. Codex loads it when a task matches its description.

Can I use Rsid SDK in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add realsenseai/RealSenseID --skill rsid-sdk -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rsid-sdk, .gemini/skills/rsid-sdk, .github/skills/rsid-sdk and .opencode/skills/rsid-sdk in your project.

What does Rsid SDK need to run?

SKILL.md names no scripts, command-line tools or credentials: Rsid SDK is instructions for the agent only. Our summary lists: Python 3.

Does Rsid SDK access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Rsid SDK safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Rsid SDK use?

Rsid SDK is published under the Apache-2.0 licence (from the LICENSE file in the skill folder). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Rsid SDK use?

About 4.1k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Rsid SDK?

Skills that share tags, products or a category with Rsid SDK: Genie API Service Docs (qualcomm/qai-appbuilder, 247 stars), Subspace Clients (dallison/subspace, 104 stars), Fory Performance Optimization (apache/fory, 4.6k stars) and Sokol Net (elix22/Sokol.NET, 154 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Rsid SDK?

realsenseai (a GitHub organization) maintains it in realsenseai/RealSenseID, which has 122 GitHub stars. The repository was last updated on October 7, 2026.

Source: realsenseai/RealSenseID on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.