跳到正文
Indiana
控制台
开发文档
章节目录 / 安装 SDK 与 CLI

安装 SDK 与 CLI

JavaScript、Python、Go SDK 与 Indiana CLI 的安装方式、运行环境和第一次请求。

API v1更新于

选择客户端

所有客户端使用同一个 HTTP 协议 0.6,并默认请求生产 API https://api.tinker.cash。服务端 SDK 持有 Server Key,只能运行在可信后端;浏览器和 App 使用后端签发的 Customer Token。

可安装的客户端
客户端包版本运行环境覆盖范围
JavaScript / TypeScript@tinkerlandai/indiana-sdk (npm)0.6.2Node.js 22+ 后端、浏览器全部服务端与浏览器能力:Customer、权益、余额、支付、优惠、Feature、Funnel、Paywall、页面实验与界面渲染
Pythontinkerlandai-indiana-sdk(import indiana)0.6.1Python 3.11+服务端:Customer、持有、权益检查、用量上报;同步与异步客户端
Gotinker.cash/sdk/gov0.6.0Go 1.23+服务端:与 Python 相同的七项操作;可并发复用的客户端
Indiana CLIindiana0.3.8Node.js 22+Console 管理操作、文档校验、代码引用扫描
Swift / Kotlin未公开发行—iOS 16+ / Android API 23+原生购买与 Funnel 宿主;见 iOS 与 Android 一页

可安装的客户端

  • JavaScript / TypeScript

    包
    @tinkerlandai/indiana-sdk (npm)
    版本
    0.6.2
    运行环境
    Node.js 22+ 后端、浏览器
    覆盖范围
    全部服务端与浏览器能力:Customer、权益、余额、支付、优惠、Feature、Funnel、Paywall、页面实验与界面渲染
  • Python

    包
    tinkerlandai-indiana-sdk(import indiana)
    版本
    0.6.1
    运行环境
    Python 3.11+
    覆盖范围
    服务端:Customer、持有、权益检查、用量上报;同步与异步客户端
  • Go

    包
    tinker.cash/sdk/go
    版本
    v0.6.0
    运行环境
    Go 1.23+
    覆盖范围
    服务端:与 Python 相同的七项操作;可并发复用的客户端
  • Indiana CLI

    包
    indiana
    版本
    0.3.8
    运行环境
    Node.js 22+
    覆盖范围
    Console 管理操作、文档校验、代码引用扫描
  • Swift / Kotlin

    包
    未公开发行
    版本
    —
    运行环境
    iOS 16+ / Android API 23+
    覆盖范围
    原生购买与 Funnel 宿主;见 iOS 与 Android 一页

Python 与 Go 目前覆盖 Customer、持有、权益检查与用量上报。其他服务端操作(会话、支付、优惠、Funnel 等)使用 JavaScript SDK 或直接调用 HTTP API;它们使用同样的请求头、凭据与错误格式。

JavaScript / TypeScript

固定安装已发布版本 0.6.2。npm 的 latest 标签可能指向更早的版本,生产项目请使用精确版本。

npmShell
npm install --save-exact @tinkerlandai/indiana-sdk@0.6.2
入口
导入路径运行位置用途
@tinkerlandai/indiana-sdk/server可信后端Server Key 客户端、会话签发、Funnel 启动与决策、Paywall 启动、AI 用量
@tinkerlandai/indiana-sdk浏览器Customer Token 客户端、Feature、Funnel 与 Paywall 展示
@tinkerlandai/indiana-sdk/page浏览器匿名 URL 跳转实验
@tinkerlandai/indiana-sdk/visual浏览器匿名可视化实验
@tinkerlandai/indiana-sdk/popup浏览器独立渲染、清洗和预览界面
@tinkerlandai/indiana-sdk/native-shellWebView原生 App 内的 Funnel 外壳资源
@tinkerlandai/indiana-sdk/openrouter可信后端OpenRouter 用量计费;需另装 @openrouter/sdk

入口

  • @tinkerlandai/indiana-sdk/server

    运行位置
    可信后端
    用途
    Server Key 客户端、会话签发、Funnel 启动与决策、Paywall 启动、AI 用量
  • @tinkerlandai/indiana-sdk

    运行位置
    浏览器
    用途
    Customer Token 客户端、Feature、Funnel 与 Paywall 展示
  • @tinkerlandai/indiana-sdk/page

    运行位置
    浏览器
    用途
    匿名 URL 跳转实验
  • @tinkerlandai/indiana-sdk/visual

    运行位置
    浏览器
    用途
    匿名可视化实验
  • @tinkerlandai/indiana-sdk/popup

    运行位置
    浏览器
    用途
    独立渲染、清洗和预览界面
  • @tinkerlandai/indiana-sdk/native-shell

    运行位置
    WebView
    用途
    原生 App 内的 Funnel 外壳资源
  • @tinkerlandai/indiana-sdk/openrouter

    运行位置
    可信后端
    用途
    OpenRouter 用量计费;需另装 @openrouter/sdk

包内置类型声明,支持 ESM 打包工具与 Node.js 22+。浏览器端通过 Vite、Next.js、webpack 等打包工具引入;不要在浏览器代码中导入 /server。

Python

Python SDK 由 tinker.cash 直接分发,不在 PyPI 上。发行包名是 tinkerlandai-indiana-sdk,导入名是 indiana。其余依赖照常从你配置的 Python 包索引安装。

pipShell
python -m pip install "https://tinker.cash/downloads/python/tinkerlandai_indiana_sdk-0.6.1-py3-none-any.whl"

https://tinker.cash/sdk/python 列出每个版本的 wheel 和源码包及其 SHA-256。安装后核对版本:

terminalShell
python -c "import indiana; print(indiana.__version__, indiana.PROTOCOL_VERSION)"

Go

模块路径是 tinker.cash/sdk/go。使用 Go 默认的模块代理与校验和数据库即可安装,无需仓库访问权限。

terminalShell
go get tinker.cash/sdk/go@v0.6.0
main.goGo
import indiana "tinker.cash/sdk/go"

如果组织设置了 GOPROXY=direct,Go 会通过 https://tinker.cash/sdk/go?go-get=1 找到同一个模块下载地址。核对版本:go list -m tinker.cash/sdk/go。

Indiana CLI

CLI 需要 Node.js 22+。macOS 与 Linux 用 curl 安装:下载对应平台的完整包并校验 SHA-256,不需要 npm 或 sudo。

terminalShell
curl -fsSL https://tinker.cash/install.sh | shexport PATH="$HOME/.local/bin:$PATH"indiana --version

Windows 或希望使用 npm 时,从网站安装同一版本:

terminalShell
npm install -g https://tinker.cash/downloads/cli/0.3.8/indiana-cli-0.3.8.tgz

之后用 indiana update 原地升级;配置与登录凭据会保留。

iOS 与 Android

Swift 与 Kotlin SDK 目前没有公开的 Swift Package 或 Maven 发行渠道。需要接入原生购买或 Funnel 宿主时请联系我们;网页内容可以先通过 JavaScript SDK 和 WebView 接入。

第一次请求

在 Console 创建一把具有 customers:write 的 Sandbox Server Key,把下面的变量放进后端被 Git 忽略的 .env,然后选择一种语言运行。成功时返回 Customer UUID;重复运行返回同一个 Customer,created 为 false。

.envShell
INDIANA_API_URL=https://api.tinker.cashINDIANA_API_KEY=<SERVER_KEY>INDIANA_PROJECT_ID=<APP_UUID>
first-request.tsTypeScript
import { createIndianaServer } from "@tinkerlandai/indiana-sdk/server"; const indiana = createIndianaServer({  baseUrl: process.env.INDIANA_API_URL!,  apiKey: process.env.INDIANA_API_KEY!,  scope: { projectId: process.env.INDIANA_PROJECT_ID!, environment: "sandbox" },}); async function main() {  const { customer, created } = await indiana.getOrCreateCustomer({    externalUserId: "user-42",  });  console.log(customer.id, created);} main().catch((error) => {  console.error(error);  process.exitCode = 1;});
  • 401:Key 不完整、已过期或已撤销。403:Key 缺少 customers:write,或 App UUID、环境与 Key 不一致。Server Key 请求不能带浏览器 Origin。
  • 400 UNSUPPORTED_PROTOCOL_VERSION:手写 HTTP 时补上 X-Indiana-Protocol 请求头;SDK 会自动发送。

相关:创建 Server Key·环境说明·客户与会话