# deploy-chalk-function

This skill walks through deploying a standalone Python function to Chalk’s container infrastructure and calling it remotely with chalkcompute.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 835 installs
- Author: chalk-ai
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/chalk-ai/chalk-ai-plugins/tree/HEAD/plugins/chalk-deploy-function/skills/deploy-chalk-function/SKILL.md
- Updated: 2026-09-15
- HTML: https://affpapa.org/en/nevibecode/skills/deploy-chalk-function

## What it does

The skill outlines a Python file that imports `chalkcompute`, marks a function with `@chalkcompute.function()`, and calls it from the script. Importing the decorated function triggers image building, upload, and registration. A later call runs remotely and returns the result.

The example uses a `uv` script header with an inline dependency declaration. Python must stay within `>=3.12,<3.14` because the transitive Rust package `chalk-remote-call-python` currently builds only through Python 3.13. The decorator requires parentheses; leaving them out raises `TypeError`.

Credentials come from `CHALK_API_SERVER`, `CHALK_CLIENT_ID`, `CHALK_CLIENT_SECRET`, and `CHALK_ENVIRONMENT_ID`, rather than the `chalk` CLI configuration. Without `CHALK_ENVIRONMENT_ID`, the image operation fails with `permission_denied`. If the configured index cannot resolve `chalkcompute`, the skill shows how to point `uv` to a local `chalk-sandbox-sdk` checkout.

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add chalk-ai/chalk-ai-plugins --skill deploy-chalk-function -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/deploy-chalk-function/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/deploy-chalk-function/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add chalk-ai/chalk-ai-plugins --skill deploy-chalk-function -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/deploy-chalk-function/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add chalk-ai/chalk-ai-plugins --skill deploy-chalk-function -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/deploy-chalk-function/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install chalk-ai/chalk-ai-plugins deploy-chalk-function
```

2. **Manually: put the files in place**
- File: `.github/skills/deploy-chalk-function/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add chalk-ai/chalk-ai-plugins --skill deploy-chalk-function -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/chalk-ai/chalk-ai-plugins --path plugins/chalk-deploy-function/skills/deploy-chalk-function
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/deploy-chalk-function/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add chalk-ai/chalk-ai-plugins --skill deploy-chalk-function -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/chalk-ai/chalk-ai-plugins/tree/HEAD/plugins/chalk-deploy-function/skills/deploy-chalk-function/SKILL.md

## When to use it
- deploy a standalone Python function to Chalk
- run a decorated function remotely
- declare `chalkcompute` as a `uv` dependency
- provide Chalk credentials through environment variables
- trace a `permission_denied` image-build failure

## Example prompts
- Create a `uv` Python script that uses `@chalkcompute.function()` and deploys the function to Chalk.
- List the environment variables required by `chalkcompute` and explain the `permission_denied` error.
- Show how to invoke the decorated function from the same script with `uv`.

## Similar
- [setup-matt-pocock-skills](https://affpapa.org/en/nevibecode/skills/setup-matt-pocock-skills.md) — skill · 1052851 installs
- [ask-matt](https://affpapa.org/en/nevibecode/skills/ask-matt.md) — skill · 766587 installs
- [to-tickets](https://affpapa.org/en/nevibecode/skills/to-tickets.md) — skill · 711230 installs
- [writing-plans](https://affpapa.org/en/nevibecode/skills/writing-plans.md) — skill · 282859 installs
- [caveman-review](https://affpapa.org/en/nevibecode/skills/caveman-review.md) — skill · 411800 installs
- [caveman-compress](https://affpapa.org/en/nevibecode/skills/caveman-compress.md) — skill · 411500 installs

From the same set: [chalk-ai/chalk-ai-plugins](https://affpapa.org/en/nevibecode/by/chalk-ai/chalk-ai-plugins.md) — 4 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
