This project has been archived by its maintainers, and is no longer receiving any updates.
ascend-tools
CLI, SDK, and MCP server for the Ascend Instance web API.
Getting started
Don't have an Ascend Instance yet? Sign up:
ascend-tools signup
Authentication
To authenticate, you need to create a Service Account and set three environment variables including the secret key (Settings > Users > Service Accounts > Create Service Account):
export ASCEND_SERVICE_ACCOUNT_ID="asc-sa-..."
export ASCEND_SERVICE_ACCOUNT_KEY="..."
export ASCEND_INSTANCE_API_URL="https://<instance-name>.api.instance.ascend.io"
CLI
Install via GitHub releases, PyPI, npm, crates.io, or source.
Python/uv:
uv tool install ascend-tools
Node.js/npm:
npm install -g ascend-tools
Rust/cargo:
cargo install ascend-tools-cli
Without "installing", you can try ascend-tools via uvx:
uvx ascend-tools workspace list
Or npx:
npx ascend-tools workspace list
See docs for more details.
Interactive TUI
Run Otto in an interactive terminal user interface (TUI):
ascend-tools otto tui
Vi keybindings by default. Type /help for commands, /emacs to switch modes.
MCP server
Connect AI assistants (Claude Code, Codex CLI, Cursor, etc.) to Ascend via uvx:
claude mcp add --transport stdio ascend-tools-dev -- uvx ascend-tools mcp
Or npx:
claude mcp add --transport stdio ascend-tools-dev -- npx ascend-tools mcp
See docs for more details.
Skills
Install reference skills for AI coding assistants:
ascend-tools skill install --target .claude/skills --all
Available flags: --cli (default), --python, --javascript, --rust, --mcp, --all.
Python SDK
Add ascend-tools to your Python project:
uv add ascend-tools
Then use the Client class:
from ascend_tools import Client
client = Client()
client.list_workspaces()
client.run_flow(flow="My Flow", workspace="My Workspace")
See docs for more details.
JavaScript SDK
Add ascend-tools to your Node.js project:
npm add ascend-tools
Then use the Client class:
import { Client } from "ascend-tools";
const client = new Client();
const workspaces = await client.listWorkspaces();
await client.runFlow("My Flow", "My Workspace");
See docs for more details.
Rust SDK
Add ascend-tools-core to your Rust project:
cargo add ascend-tools-core
Then use the AscendClient struct:
use ascend_tools::client::AscendClient;
use ascend_tools::config::Config;
let client = AscendClient::new(Config::from_env()?)?;
let workspaces = client.list_workspaces(Default::default())?;
See docs for more details.
Documentation
- Quickstart: create a service account, install, and run your first flow
- Installation: all install methods
- CLI: all commands with examples
- Python SDK: Client methods, return types, error handling
- JavaScript SDK: async Client methods, streaming, TypeScript types
- Rust SDK: typed client with structs and error handling
- MCP server: set up AI assistants with Ascend tools
- Development: contributor setup, architecture, release process
License
Metadata
Release files for ascend-tools 1.6.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| ascend_tools-1.6.0.tar.gz | 128.6 kB | Details |
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| ascend_tools-1.6.0-cp311-abi3-manylinux_2_39_x86_64.whl | CPython 3.11 | abi3 | Linux glibc 2.39+ x86-64 | Details |
| ascend_tools-1.6.0-cp311-abi3-manylinux_2_39_aarch64.whl | CPython 3.11 | abi3 | Linux glibc 2.39+ ARM64 | Details |
| ascend_tools-1.6.0-cp311-abi3-macosx_11_0_arm64.whl | CPython 3.11 | abi3 | macOS 11.0+ ARM64 | Details |
| ascend_tools-1.6.0-cp311-abi3-macosx_10_12_x86_64.whl | CPython 3.11 | abi3 | macOS 10.12+ x86-64 | Details |
Total release size: 20.6 MB
Release files / ascend_tools-1.6.0.tar.gz
| Download URL | ascend_tools-1.6.0.tar.gz |
|---|---|
| Size | 128.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
59ba9848decc15d2627dbd35d2374925075dea04ebe5a5a8d386de81b09ef585
|
|
BLAKE2b-256 checksum How to use checksums |
e6cf153f7c6aa87fbcbe21cd0b8de8461a9abf7c48f2f788073df43c0bd4a783
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.
Transparency logRelease files / ascend_tools-1.6.0-cp311-abi3-manylinux_2_39_x86_64.whl
| Download URL | ascend_tools-1.6.0-cp311-abi3-manylinux_2_39_x86_64.whl |
|---|---|
| Size | 5.4 MB |
| Tags | CPython 3.11 Linux glibc 2.39+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
0e13af7cd3a2398ce7c3ff71aadcf16f78899d163a72b499d990858d56f0d9bd
|
|
BLAKE2b-256 checksum How to use checksums |
24eaea432beb4494bcd3e0d4a837a1a24bfefad8c3402792147d73574cdbba7c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.
Transparency logRelease files / ascend_tools-1.6.0-cp311-abi3-manylinux_2_39_aarch64.whl
| Download URL | ascend_tools-1.6.0-cp311-abi3-manylinux_2_39_aarch64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.11 Linux glibc 2.39+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
af5ba3d765608282f96ea5d16cb8182fbadb6b0f060761adf721f49b50622060
|
|
BLAKE2b-256 checksum How to use checksums |
b12250425349c8b1106948d974f61c3c65f8ac9a2de120768a312bc47933a591
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.
Transparency logRelease files / ascend_tools-1.6.0-cp311-abi3-macosx_11_0_arm64.whl
| Download URL | ascend_tools-1.6.0-cp311-abi3-macosx_11_0_arm64.whl |
|---|---|
| Size | 4.8 MB |
| Tags | CPython 3.11 abi3 macOS 11.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
44870c03d2bab649afbe2a40d9a1d2ef4a4efae61f2039517b23ed6fd396e361
|
|
BLAKE2b-256 checksum How to use checksums |
5545fafcb08a756d9393931c40095c879c6a3929c0cff4da73c0fa47d1c4deaa
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.
Transparency logRelease files / ascend_tools-1.6.0-cp311-abi3-macosx_10_12_x86_64.whl
| Download URL | ascend_tools-1.6.0-cp311-abi3-macosx_10_12_x86_64.whl |
|---|---|
| Size | 5.1 MB |
| Tags | CPython 3.11 abi3 macOS 10.12+ x86-64 |
|
SHA-256 checksum How to use checksums |
b88f3e029bcd613f379908443330161659a941011db6c6b555899cb11dab77e7
|
|
BLAKE2b-256 checksum How to use checksums |
21cdff6d7590d18f77ba71c39a95acf0390f085c0ba52478342366a1c0310cf2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 8, 2026.
Transparency log