Publish a skill folder to the Console Library for the organization (--scope org) or one project. Requires --execute.
curl --request POST \
--url http://localhost:3000/api/v1/skills/publish \
--header 'Content-Type: application/json' \
--data '
{
"dir": "<string>",
"execute": true,
"external": true,
"name": "<string>",
"note": "<string>",
"scope": "<string>",
"slug": "<string>"
}
'import requests
url = "http://localhost:3000/api/v1/skills/publish"
payload = {
"dir": "<string>",
"execute": True,
"external": True,
"name": "<string>",
"note": "<string>",
"scope": "<string>",
"slug": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
dir: '<string>',
execute: true,
external: true,
name: '<string>',
note: '<string>',
scope: '<string>',
slug: '<string>'
})
};
fetch('http://localhost:3000/api/v1/skills/publish', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/v1/skills/publish",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'dir' => '<string>',
'execute' => true,
'external' => true,
'name' => '<string>',
'note' => '<string>',
'scope' => '<string>',
'slug' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/v1/skills/publish"
payload := strings.NewReader("{\n \"dir\": \"<string>\",\n \"execute\": true,\n \"external\": true,\n \"name\": \"<string>\",\n \"note\": \"<string>\",\n \"scope\": \"<string>\",\n \"slug\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3000/api/v1/skills/publish")
.header("Content-Type", "application/json")
.body("{\n \"dir\": \"<string>\",\n \"execute\": true,\n \"external\": true,\n \"name\": \"<string>\",\n \"note\": \"<string>\",\n \"scope\": \"<string>\",\n \"slug\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/v1/skills/publish")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"dir\": \"<string>\",\n \"execute\": true,\n \"external\": true,\n \"name\": \"<string>\",\n \"note\": \"<string>\",\n \"scope\": \"<string>\",\n \"slug\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"contentHash": "<string>",
"item": {
"archived": true,
"contentHash": "<string>",
"description": "<string>",
"externalAllowed": true,
"kind": "<string>",
"name": "<string>",
"project": {
"id": "<string>",
"slug": "<string>",
"name": "<string>"
},
"publishedAt": "<string>",
"publishedBy": {
"name": "<string>"
},
"ref": "<string>",
"scope": "org",
"slug": "<string>",
"updatedAt": "<string>",
"version": 123
},
"ref": "<string>",
"success": true,
"unchanged": true,
"version": 123
}skills
Publish a skill folder to the Console Library for the organization (--scope org) or one project. Requires --execute.
POST
/
api
/
v1
/
skills
/
publish
Publish a skill folder to the Console Library for the organization (--scope org) or one project. Requires --execute.
curl --request POST \
--url http://localhost:3000/api/v1/skills/publish \
--header 'Content-Type: application/json' \
--data '
{
"dir": "<string>",
"execute": true,
"external": true,
"name": "<string>",
"note": "<string>",
"scope": "<string>",
"slug": "<string>"
}
'import requests
url = "http://localhost:3000/api/v1/skills/publish"
payload = {
"dir": "<string>",
"execute": True,
"external": True,
"name": "<string>",
"note": "<string>",
"scope": "<string>",
"slug": "<string>"
}
headers = {"Content-Type": "application/json"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': 'application/json'},
body: JSON.stringify({
dir: '<string>',
execute: true,
external: true,
name: '<string>',
note: '<string>',
scope: '<string>',
slug: '<string>'
})
};
fetch('http://localhost:3000/api/v1/skills/publish', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_PORT => "3000",
CURLOPT_URL => "http://localhost:3000/api/v1/skills/publish",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'dir' => '<string>',
'execute' => true,
'external' => true,
'name' => '<string>',
'note' => '<string>',
'scope' => '<string>',
'slug' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "http://localhost:3000/api/v1/skills/publish"
payload := strings.NewReader("{\n \"dir\": \"<string>\",\n \"execute\": true,\n \"external\": true,\n \"name\": \"<string>\",\n \"note\": \"<string>\",\n \"scope\": \"<string>\",\n \"slug\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("http://localhost:3000/api/v1/skills/publish")
.header("Content-Type", "application/json")
.body("{\n \"dir\": \"<string>\",\n \"execute\": true,\n \"external\": true,\n \"name\": \"<string>\",\n \"note\": \"<string>\",\n \"scope\": \"<string>\",\n \"slug\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("http://localhost:3000/api/v1/skills/publish")
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Content-Type"] = 'application/json'
request.body = "{\n \"dir\": \"<string>\",\n \"execute\": true,\n \"external\": true,\n \"name\": \"<string>\",\n \"note\": \"<string>\",\n \"scope\": \"<string>\",\n \"slug\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body{
"contentHash": "<string>",
"item": {
"archived": true,
"contentHash": "<string>",
"description": "<string>",
"externalAllowed": true,
"kind": "<string>",
"name": "<string>",
"project": {
"id": "<string>",
"slug": "<string>",
"name": "<string>"
},
"publishedAt": "<string>",
"publishedBy": {
"name": "<string>"
},
"ref": "<string>",
"scope": "org",
"slug": "<string>",
"updatedAt": "<string>",
"version": 123
},
"ref": "<string>",
"success": true,
"unchanged": true,
"version": 123
}Body
application/json
Skill folder holding SKILL.md (relative to your current directory)
Confirm the publish (without it, print the plan and exit 3)
Allow loading this skill in conversations with people outside the organization
Display name (default: SKILL.md name, else the slug)
Version note, at most 500 characters
org, or the Console project slug the skill belongs to
Library slug (default: SKILL.md name, else the folder name)