Speckle.Objects when you work with geometry types.
When to read this: before your first compile against Speckle.Sdk. Read next: Build your first model analysis tool, then Automate with scripts for the canonical bootstrap snippet.
Requirements
Speckle.Sdk targets three frameworks, so it runs in both modern and legacy host apps:| Target framework | Typical use case |
|---|---|
net10.0 | New standalone .NET applications and services |
net8.0 | Current-generation .NET applications and services |
netstandard2.0 | Older host apps, such as Revit on .NET Framework 4.8 |
Speckle.Sdk works on Windows, macOS, and Linux.
Install with the .NET CLI
.csproj:
Install a specific version
Check NuGet for the latest published version before pinning — the version above is a point-in-time example, not a recommendation to stay on it.
Add geometry support (optional)
If you plan to work with geometry (Point, Line, Mesh, Brep, and other primitives), also install Speckle.Objects:
Speckle.Objects is a separate package from Speckle.Sdk. The core SDK handles sending, receiving, and the object model; Speckle.Objects adds the default geometry types built on top of it.Register the SDK (one-time bootstrap)
Speckle.Sdk usesMicrosoft.Extensions.DependencyInjection internally. Script authors: use the canonical bootstrap in Automate with scripts — do not duplicate it here. Connector authors: register on your app’s IServiceCollection:
Pass
Speckle.Objects or custom type assemblies in AddSpeckleSdk when you receive those types — see Automate with scripts for the full bootstrap with assemblies.Verify installation
Confirm the package resolves and the SDK registers correctly:Dependencies
Speckle.Sdk brings in these dependencies automatically:| Package | Purpose |
|---|---|
Microsoft.Extensions.DependencyInjection | Service registration and resolution |
Microsoft.Extensions.Logging | Structured logging |
GraphQL.Client | GraphQL client for Speckle Server’s API |
Microsoft.Data.Sqlite | Local object and account caching |
Speckle.Newtonsoft.Json | Serialization |
Speckle.DoubleNumerics | Numeric types used by the object model |
You don’t need to install these manually — NuGet handles them automatically.
Speckle.Sdk.Dependencies bundles additional transitive dependencies and should not be referenced directly.FAQ
Do I need both Speckle.Sdk and Speckle.Objects?
Do I need both Speckle.Sdk and Speckle.Objects?
Speckle.Sdk is required for sending, receiving, and the object model. Add Speckle.Objects when you use built-in geometry types (
Point, Line, Mesh, and so on). Pass the Speckle.Objects assembly in AddSpeckleSdk so those types deserialize on receive.Do I need to understand dependency injection to install the SDK?
Do I need to understand dependency injection to install the SDK?
No. You paste a short
AddSpeckleSdk block once — see Automate with scripts. Read Dependency injection (connectors) only if you are building a connector or sharing a container with a host app.Which target framework should I use?
Which target framework should I use?
Match your host app. Use
netstandard2.0 for older hosts such as Revit on .NET Framework 4.8. Use net8.0 or net10.0 for new standalone apps and services.Next Steps
Build your first model analysis tool
End-to-end load, traverse, and CSV export
Automate with scripts
Canonical bootstrap and Send2
Authentication
Connect with a personal access token