9 Commits

Author SHA1 Message Date
0d23a8b8b0 d
Some checks failed
Release / build (, amd64, darwin) (push) Failing after 38s
Release / build (, amd64, linux) (push) Failing after 13s
Release / build (, arm64, darwin) (push) Failing after 14s
Release / build (, arm64, linux) (push) Failing after 13s
Release / build (.exe, amd64, windows) (push) Failing after 14s
Release / release (push) Has been skipped
2026-03-31 02:53:50 -03:00
Claudia CLI Bot
17c9393b98 feat: Improve release workflow with install script, checksums and better packaging
Some checks failed
Release / build (, amd64, darwin) (push) Failing after 12s
Release / build (, amd64, linux) (push) Failing after 10s
Release / build (, arm64, darwin) (push) Failing after 9s
Release / build (, arm64, linux) (push) Failing after 9s
Release / build (.exe, amd64, windows) (push) Failing after 10s
Release / release (push) Has been skipped
Release / latest (push) Has been skipped
2026-03-31 05:16:06 +00:00
4eb68008b3 3
Some checks failed
Release / build (amd64, darwin, ) (push) Failing after 35s
Release / build (amd64, linux, ) (push) Failing after 10s
Release / build (amd64, windows, .exe) (push) Failing after 10s
Release / build (arm64, darwin, ) (push) Failing after 10s
Release / build (arm64, linux, ) (push) Failing after 9s
Release / release (push) Has been skipped
2026-03-31 01:46:03 -03:00
4258feab81 aaaa 2026-03-31 01:38:04 -03:00
fa6c44fcf1 ddd
Some checks failed
Release / build (push) Failing after 5m26s
Release / release (push) Has been skipped
2026-03-31 01:34:11 -03:00
3a50eac98e actualizacion 2026-03-31 01:06:38 -03:00
edddc538f9 readme actualizado
Some checks failed
Release / release (push) Has been cancelled
Release / build (amd64, darwin, ) (push) Failing after 38s
Release / build (amd64, linux, ) (push) Failing after 40s
Release / build (arm64, darwin, ) (push) Has been cancelled
Release / build (arm64, linux, ) (push) Has been cancelled
Release / build (amd64, windows, .exe) (push) Has been cancelled
2026-03-31 00:26:23 -03:00
258b1b0a0b actions 2026-03-31 00:18:20 -03:00
Claudia CLI Bot
4dd56b82c6 docs: Add comprehensive usage documentation to README 2026-03-31 02:28:45 +00:00
2 changed files with 472 additions and 0 deletions

View File

@@ -0,0 +1,197 @@
name: Release
on:
push:
tags:
- 'v*'
workflow_dispatch:
inputs:
version:
description: 'Version tag (e.g., v1.0.0)'
required: false
type: string
env:
BINARY_NAME: claudia-docs
GO_VERSION: '1.22'
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
include:
- goos: linux
goarch: amd64
ext: ''
- goos: linux
goarch: arm64
ext: ''
- goos: windows
goarch: amd64
ext: '.exe'
- goos: darwin
goarch: amd64
ext: ''
- goos: darwin
goarch: arm64
ext: ''
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: ${{ env.GO_VERSION }}
cache: true
- name: Get version
id: version
run: |
if [ -n "${{ gitea.event.inputs.version }}" ]; then
VERSION="${{ gitea.event.inputs.version }}"
else
VERSION="${{ gitea.ref_name }}"
fi
echo "version=${VERSION#v}" >> $GITEA_OUTPUT
echo "tag=${VERSION}" >> $GITEA_OUTPUT
- name: Build
env:
GOOS: ${{ matrix.goos }}
GOARCH: ${{ matrix.goarch }}
CGO_ENABLED: 0
run: |
BINARY="${{ env.BINARY_NAME }}-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.ext }}"
mkdir -p dist
go build \
-ldflags="-w -s \
-X main.version=${{ steps.version.outputs.version }} \
-X main.commit=$(git rev-parse --short HEAD) \
-X main.date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
-o "dist/${BINARY}" \
./cmd/claudia-docs
- name: Package
run: |
cd dist
BINARY="${{ env.BINARY_NAME }}-${{ matrix.goos }}-${{ matrix.goarch }}${{ matrix.ext }}"
case "${{ matrix.goos }}" in
windows)
zip "${BINARY%.exe}.zip" "${BINARY}"
;;
*)
tar -czf "${BINARY}.tar.gz" "${BINARY}"
;;
esac
- name: Upload artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.goos }}-${{ matrix.goarch }}
path: dist/*
retention-days: 5
release:
runs-on: ubuntu-latest
needs: build
if: startsWith(gitea.ref, 'refs/tags/v') || gitea.event.inputs.version != ''
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get version
id: version
run: |
if [ -n "${{ gitea.event.inputs.version }}" ]; then
VERSION="${{ gitea.event.inputs.version }}"
else
VERSION="${{ gitea.ref_name }}"
fi
echo "version=${VERSION#v}" >> $GITEA_OUTPUT
echo "tag=${VERSION}" >> $GITEA_OUTPUT
- name: Download artifacts
uses: actions/download-artifact@v4
with:
path: dist/
merge-multiple: true
- name: Generate changelog
run: |
PREV_TAG=$(git tag --sort=-version:refname | sed -n '2p')
if [ -z "$PREV_TAG" ]; then
echo "# Changes (full history)" > changelog.md
git log --pretty=format:"- %s (%h)" -20 >> changelog.md
else
echo "# Changes since ${PREV_TAG}" > changelog.md
git log "${PREV_TAG}..${{ steps.version.outputs.tag }}" \
--pretty=format:"- %s (%h)" >> changelog.md
fi
cat changelog.md
- name: Generate checksums
run: |
cd dist
sha256sum * > checksums.txt
cat checksums.txt
- name: Generate install script
run: |
cat > install.sh << 'INSTALL_SCRIPT'
#!/bin/bash
set -e
VERSION="${VERSION:-latest}"
BINARY="claudia-docs"
OS="$(uname -s | tr '[:upper:]' '[:lower:]')"
ARCH="$(uname -m)"
case "$ARCH" in
x86_64) ARCH="amd64" ;;
aarch64|arm64) ARCH="arm64" ;;
esac
URL="https://gitea.danielarroyo.cl/proyectos/claudia-docs-cli/releases/download/${VERSION}/claudia-docs-${OS}-${ARCH}.tar.gz"
echo "Installing Claudia Docs CLI ${VERSION}..."
echo "Downloading from: ${URL}"
curl -fsSL "${URL}" | tar -xz
chmod +x "${BINARY}-${OS}-${ARCH}"
mv "${BINARY}-${OS}-${ARCH}" "${BINARY}"
if [ -w /usr/local/bin ]; then
mv "${BINARY}" /usr/local/bin/
echo "Installed to /usr/local/bin/claudia-docs"
else
echo "Run: sudo mv ${BINARY} /usr/local/bin/"
fi
echo "Done! Run: claudia-docs --version"
INSTALL_SCRIPT
chmod +x install.sh
- name: Create Release
uses: https://gitea.com/actions/gitea-release-action@v1
with:
token: ${{ secrets.RELEASE_TOKEN }}
tag_name: ${{ steps.version.outputs.tag }}
name: "Claudia Docs CLI ${{ steps.version.outputs.tag }}"
body_path: changelog.md
files: |
dist/*.tar.gz
dist/*.zip
dist/checksums.txt
install.sh

275
README.md
View File

@@ -1,2 +1,277 @@
# claudia-docs-cli
CLI tool for interacting with Claudia Docs from agents and scripts.
## Installation
### Download Binary
```bash
# Linux/macOS
curl -fsSL https://gitea.danielarroyo.cl/proyectos/claudia-docs-cli/releases/latest/claudia-docs -o /usr/local/bin/claudia-docs
chmod +x /usr/local/bin/claudia-docs
```
### Build from Source
```bash
git clone https://gitea.danielarroyo.cl/proyectos/claudia-docs-cli.git
cd claudia-docs-cli
go build -o claudia-docs ./cmd/claudia-docs
```
## Quick Start
```bash
# Login
./claudia-docs auth login -u admin -p your_password --save
# List projects
./claudia-docs project list
# Create document
./claudia-docs doc create -t "My Document" -c "# Hello" -p <project-id>
# List documents
./claudia-docs doc list --project-id <project-id>
```
## Global Options
| Flag | Description | Default |
|------|-------------|---------|
| `--server` | API server URL | `http://localhost:8000` |
| `--token` | JWT token | From config or `CLAUDIA_TOKEN` env |
| `--output` | Output format: `json`, `text` | `json` |
| `--quiet` | Suppress stdout, only JSON | `false` |
| `--config` | Config file path | `~/.claudia-docs.yaml` |
| `--verbose` | Verbose debug output | `false` |
## Environment Variables
| Variable | Description |
|----------|-------------|
| `CLAUDIA_SERVER` | API server URL |
| `CLAUDIA_TOKEN` | JWT token |
| `CLAUDIA_OUTPUT` | Output format |
## Commands
### Auth
```bash
# Login and save token
./claudia-docs auth login -u <username> -p <password> --save
# Check status
./claudia-docs auth status
# Logout
./claudia-docs auth logout
```
### Projects
```bash
# List all projects
./claudia-docs project list
# Get project details
./claudia-docs project get <project-id>
```
### Documents
```bash
# Create document
./claudia-docs doc create -t "Title" -c "# Content" -p <project-id> [-f <folder-id>]
# List documents in project
./claudia-docs doc list --project-id <project-id> [--limit 20] [--offset 0]
# Get document
./claudia-docs doc get <document-id> [--include-reasoning]
# Update document
./claudia-docs doc update <document-id> [-t "New Title"] [-c "New Content"]
# Delete document
./claudia-docs doc delete <document-id> [--force]
```
### Folders
```bash
# List folders in project
./claudia-docs folder list --project-id <project-id> [--parent-id <folder-id>]
# Create folder
./claudia-docs folder create --project-id <project-id> -n "Folder Name" [--parent-id <folder-id>]
```
### Tags
```bash
# List all tags
./claudia-docs tag list
# Create tag
./claudia-docs tag create -n <name> [--color <hex-color>]
# Add tag to document
./claudia-docs tag add --doc-id <document-id> --tag-id <tag-id>
```
### Search
```bash
# Full-text search
./claudia-docs search -q "query" [--project-id <project-id>] [--tags <tag1,tag2>]
```
### Reasoning
```bash
# Save reasoning metadata
./claudia-docs reasoning save -d <document-id> -t <type> -s '<json-steps>' [--confidence 0.85] [--model <model-name>]
# Types: research, planning, analysis, synthesis
# Steps JSON: '[{"step_id":"1","thought":"...","conclusion":"..."}]'
```
## Output Format
### JSON (default)
```json
{
"success": true,
"data": {...},
"error": null,
"meta": {
"command": "doc create",
"duration_ms": 45,
"server": "http://localhost:8000"
}
}
```
### Text
```bash
./claudia-docs --output text project list
```
## Configuration
Config file: `~/.claudia-docs.yaml`
```yaml
server: http://localhost:8000
token: ""
timeout: 30s
output: json
agents:
default:
token: ""
default_project: ""
```
## Examples
### Full Workflow
```bash
# 1. Login
./claudia-docs auth login -u researcher -p secret --save
# 2. List projects
./claudia-docs project list
# 3. Create document with content
./claudia-docs doc create \
--title "Research: AI Trends 2026" \
--content "# AI Trends\n\n..." \
--project-id "uuid-project"
# 4. Search
./claudia-docs search -q "AI trends"
# 5. Get and update
./claudia-docs doc get <doc-id>
./claudia-docs doc update <doc-id> -t "Updated Title"
```
### Script Integration
```bash
#!/bin/bash
export CLAUDIA_SERVER=http://localhost:8000
export CLAUDIA_TOKEN=$(./claudia-docs auth login -u agent -p pass --output json | jq -r '.data.token')
# Create document
DOC_ID=$(./claudia-docs doc create -t "Report" -c "# Content" -p $PROJECT_ID --output json | jq -r '.data.id')
# Save reasoning
./claudia-docs reasoning save -d $DOC_ID -t research -s '[{"step_id":"1","thought":"Analysis...","conclusion":"Result"}]'
```
## Help
```bash
./claudia-docs --help
./claudia-docs auth --help
./claudia-docs doc --help
```
---
# En tu máquina local
git tag v1.0.0
git push origin v1.0.0
```
---
### Secret necesario
En **Settings → Secrets → Actions** de tu repo:
| Secret | Cómo obtenerlo |
|---|---|
| `RELEASE_TOKEN` | Gitea → Settings → Applications → Generate Token (con permiso `write:repository`) |
---
### Estructura esperada del proyecto
```
mi-proyecto/
├── cmd/
│ └── main.go ← entrypoint
├── go.mod
├── go.sum
└── .gitea/
└── workflows/
└── release.yml
# Si main.go está en la raíz
-o "dist/${BINARY_NAME}" .
# Si está en otro lugar
-o "dist/${BINARY_NAME}" ./internal/cmd/server.go
```
---
### Resultado en Gitea
Una vez que hagas push del tag, en **Releases** del repo verás:
```
Release v1.0.0
├── app-linux-amd64.tar.gz
├── app-linux-arm64.tar.gz
├── app-darwin-amd64.tar.gz
├── app-darwin-arm64.tar.gz
├── app-windows-amd64.zip
└── checksums.txt