bama
BAMA: Build Any Mac App. Agent skills to research, clone, design, build, optimize, and test native macOS apps with Swift and SwiftUI.
Altinity's agent skills for ClickHouse® development and DBA tasks
SkillsPython · ShellGitHub @AltinitySelf-installOwner unconfirmed
Paste into Claude or ChatGPT for installation instructions suited to your environment.
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Installable projects can be verified without a deployment domain. Use GitHub sign-in for a personal repository, or the repository verification file above for an organization repository.
Ask about other verification options
Loading the full README. The saved excerpt is shown below.
This repository contains skills used for ClickHouse® DB performance and schema analysis and helper workflows.
Core Skills
• altinity-expert-clickhouse/: Modular ClickHouse diagnostic skill set. Each module is a standalone skill under altinity-expert-clickhouse/skills/ (e.g., memory, merges, replication).
• altinity-profiler-clickhouse/: Profiles a live ClickHouse cluster via MCP and generates a per-cluster analyst Skill (schema map, query patterns, engine idioms) that can be saved in claude.ai.Read the full README ↗This repository contains skills used for ClickHouse® DB performance and schema analysis and helper workflows.
altinity-expert-clickhouse/: Modular ClickHouse diagnostic skill set. Each module is a standalone skill under altinity-expert-clickhouse/skills/ (e.g., memory, merges, replication).altinity-profiler-clickhouse/: Profiles a live ClickHouse cluster via MCP and generates a per-cluster analyst Skill (schema map, query patterns, engine idioms) that can be saved in claude.ai.SKILL.md.SKILL.md (e.g., modules/, scripts, prompts).Each skill group has its own release workflow and tag scheme:
| Skill group | Tag pattern | Workflow |
|---|---|---|
altinity-expert-clickhouse | expert-v* | .github/workflows/expert-skills.yaml |
altinity-profiler-clickhouse | profiler-v* | .github/workflows/profiler-skill.yaml |
On every PR / push to main, changed skills are packaged and uploaded as workflow artifacts. On a matching tag push, all skills in that group are packaged and published as GitHub Release assets.
One-liner (recommended):
npx skills add --agent claude-code Altinity/altinity-skills/altinity-expert-clickhouse/
npx skills add --agent claude-code Altinity/altinity-skills/altinity-profiler-clickhouse/
This installs all skills into ~/.claude/skills/.
Install a single skill:
npx skills add --agent claude-code Altinity/altinity-skills/altinity-expert-clickhouse/skills/altinity-expert-clickhouse-overview
Manual install:
git clone https://github.com/Altinity/altinity-skills.git
# Copy a specific skill
cp -r altinity-skills/altinity-expert-clickhouse/skills/altinity-expert-clickhouse-overview ~/.claude/skills/
# Or symlink the whole skills directory
ln -s "$(pwd)/altinity-skills/altinity-expert-clickhouse/skills" ~/.claude/skills/altinity-expert-clickhouse
Usage — invoke a skill with a slash command:
/altinity-expert-clickhouse-overview Analyze cluster health
/altinity-profiler-clickhouse Profile this cluster and generate an analyst skill
Each skill is a separate zip. Upload as many as needed.
One-liner (recommended):
npx skills add --agent codex Altinity/altinity-skills/altinity-expert-clickhouse/
npx skills add --agent codex Altinity/altinity-skills/altinity-profiler-clickhouse/
This installs all skills into ~/.codex/skills/.
Manual install:
git clone https://github.com/Altinity/altinity-skills.git
# Copy a specific skill
cp -r altinity-skills/altinity-expert-clickhouse/skills/altinity-expert-clickhouse-overview ~/.codex/skills/
# Or symlink the whole skills directory
ln -s "$(pwd)/altinity-skills/altinity-expert-clickhouse/skills" ~/.codex/skills/altinity-expert-clickhouse
Usage — invoke a skill with a dollar-sign prefix:
$altinity-expert-clickhouse-overview Analyze cluster health
$altinity-profiler-clickhouse Profile this cluster and generate an analyst skill
npx skills add --agent gemini Altinity/altinity-skills/altinity-expert-clickhouse/
npx skills add --agent gemini Altinity/altinity-skills/altinity-profiler-clickhouse/
Or manually:
git clone https://github.com/Altinity/altinity-skills.git
mkdir -p ~/.gemini/skills
ln -s "$(pwd)/altinity-skills/altinity-expert-clickhouse/skills" ~/.gemini/skills/altinity-expert-clickhouse
Usage:
use skill `altinity-expert-clickhouse-overview` Analyze cluster health
OpenCode discovers Agent Skills from a project's .opencode/skills/ directory (and .claude/skills/, .agents/skills/), following symlinks. Keep skills project-local:
git clone https://github.com/Altinity/altinity-skills.git
mkdir -p .opencode
ln -s "$(pwd)/altinity-skills/altinity-expert-clickhouse/skills" .opencode/skills
The model loads a skill with its skill tool; ask for it by name:
Use the altinity-expert-clickhouse-connection skill, then altinity-expert-clickhouse-overview, and report server health.
Tested with mid-size open models (Qwen 3.8 flash-next) at temperature: 0; see altinity-expert-clickhouse/tests/opencode/ for the evaluation harness and a ready-made read-only agent definition.
A pre-built Docker image with Claude Code, Codex CLI, and all skills is available:
docker pull ghcr.io/altinity/expert:latest
The image includes:
claude - Anthropic Claude Code CLIcodex - OpenAI Codex CLIaltinity-mcp - Altinity MCP server# Claude agent
docker run -it --rm \
-v ~/.claude:/home/bun/.claude \
ghcr.io/altinity/expert:latest \
claude --dangerously-skip-permissions -p "/altinity-expert-clickhouse-overview Analyze cluster health"
# Codex agent
docker run -it --rm \
-v ~/.codex:/home/bun/.codex \
ghcr.io/altinity/expert:latest \
codex exec --dangerously-bypass-approvals-and-sandbox "\$altinity-expert-clickhouse-overview Analyze cluster health"
A Helm chart is provided to run skills as Kubernetes Jobs in non-interactive mode.
Chart details:
altinity-experthelm/skills-agenthelm/skills-agent/README.mdFrom OCI registry (recommended):
# Use --version to pin a chart release in production.
helm install my-audit oci://ghcr.io/altinity/skills-helm-chart/altinity-expert \
--set skillName=altinity-expert-clickhouse-overview \
--set prompt="Analyze ClickHouse cluster health" \
--set-file credentials.claudeCredentials=~/.claude/.credentials.json
From local repository:
git clone https://github.com/Altinity/skills.git
cd skills
helm install my-audit ./helm/skills-agent \
--set agent=codex \
--set model=gpt-5.3-codex \
--set skillName=altinity-expert-clickhouse-overview \
--set prompt="Analyze ClickHouse cluster health and summarize top risks" \
--set-file credentials.codexAuth=~/.codex/auth.json
helm lint ./helm/skills-agent
# Render defaults
helm template my-audit ./helm/skills-agent
# Render an IRSA-enabled variant
helm template my-audit ./helm/skills-agent \
--set storeResults.enabled=true \
--set storeResults.s3Bucket=my-results-bucket \
--set storeResults.iamRoleArn=arn:aws:iam::123456789012:role/my-eks-s3-role \
--set serviceAccount.create=true
| Parameter | Description | Default |
|---|---|---|
debugMode | Create debug Pod (sleep infinity) instead of Job | false |
agent | Agent CLI: claude or codex | claude |
model | Codex model (agent=codex only) | "" |
skillName | Skill name without leading / or $ | altinity-clickhouse-expert |
prompt | Prompt passed to skill | Analyze ClickHouse cluster health |
image.repository | Docker image repository | ghcr.io/altinity/expert |
image.tag | Docker image tag | latest |
imagePullSecrets | Pull secrets for private registries | [] |
job.restartPolicy | Pod restart policy | Never |
job.backoffLimit | Job retries | 0 |
job.ttlSecondsAfterFinished | Cleanup TTL | 3600 |
job.activeDeadlineSeconds | Job timeout | 1800 |
resources | CPU/memory requests and limits | see values.yaml |
extraEnv | Additional env vars for container | [] |
clickhouse.host | ClickHouse host | localhost |
clickhouse.port | ClickHouse port | 9440 |
clickhouse.user | ClickHouse user | default |
clickhouse.password |
helm install my-debug oci://ghcr.io/altinity/skills-helm-chart/altinity-expert \
--set debugMode=true \
--set skillName=altinity-expert-clickhouse-overview \
--set prompt="Analyze ClickHouse cluster health" \
--set-file credentials.claudeCredentials=~/.claude/.credentials.json
kubectl exec -it <release-name>-altinity-expert-debug -- /bin/sh
kubectl logs <release-name>-altinity-expert-debug
IRSA mode (recommended on EKS):
helm install my-audit oci://ghcr.io/altinity/skills-helm-chart/altinity-expert \
--set skillName=altinity-expert-clickhouse-overview \
--set prompt="Analyze ClickHouse cluster health" \
--set-file credentials.claudeCredentials=~/.claude/.credentials.json \
--set storeResults.enabled=true \
--set storeResults.s3Bucket=my-results-bucket \
--set storeResults.s3Prefix=agent-results \
--set storeResults.iamRoleArn=arn:aws:iam::123456789012:role/my-eks-s3-role \
--set serviceAccount.create=true
Static AWS credentials mode:
helm install my-audit oci://ghcr.io/altinity/skills-helm-chart/altinity-expert \
--set skillName=altinity-expert-clickhouse-overview \
--set prompt="Analyze ClickHouse cluster health" \
--set-file credentials.claudeCredentials=~/.claude/.credentials.json \
--set storeResults.enabled=true \
--set storeResults.s3Bucket=my-results-bucket \
--set storeResults.awsAccessKeyId=AKIAIOSFODNN7EXAMPLE \
--set storeResults.awsSecretAccessKey=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
When storeResults.enabled=true:
/workspace/${TIMESTAMP}/agent-execution.log.0, the full work directory uploads to s3://${S3_BUCKET}/${S3_PREFIX}/${TIMESTAMP}/.When credentials.create=false, the existing secret must contain:
codex-auth.jsonclaude-credentials.jsonclickhouse-client-config.xmlaltinity-mcp-config.yamlclickhouse-ca.crt, clickhouse-client.crt, clickhouse-client.key# Example: install using an existing secret
helm install my-audit ./helm/skills-agent \
--set credentials.create=false \
--set credentials.existingSecretName=agent-credentials \
--set skillName=altinity-expert-clickhouse-overview \
--set prompt="Run diagnostics"
kubectl get jobs -l app.kubernetes.io/instance=my-audit
kubectl logs -l app.kubernetes.io/instance=my-audit -f
kubectl get pods -l app.kubernetes.io/instance=my-audit
Helm-free alternative is available for interactive expert runs with cloudctl + kubectl.
k8s/scripts/run-expert-job.shk8s/templates/expert-job.yamlk8s/README.mdExample:
export EXPERT_CH_USER=default
export EXPERT_RUNTIME=codex
k8s/scripts/run-expert-job.sh demo prod 'my-clickhouse-password'
Altinity offers a range of services related to ClickHouse®.
© 2025-2026 Altinity Inc. All rights reserved. Altinity®, Altinity.Cloud®, and Altinity Stable® are registered trademarks of Altinity, Inc. ClickHouse® is a registered trademark of ClickHouse, Inc.; Altinity is not affiliated with or associated with ClickHouse, Inc.
| ClickHouse password |
"" |
clickhouse.tls.enabled | Enable TLS in generated configs | true |
clickhouse.tls.ca | PEM CA cert content | "" |
clickhouse.tls.cert | PEM client cert content | "" |
clickhouse.tls.key | PEM client key content | "" |
credentials.create | Create credentials/config secret from values | true |
credentials.existingSecretName | Existing secret to mount when create=false | "" |
serviceAccount.create | Create ServiceAccount | false |
serviceAccount.name | ServiceAccount name override | "" |
serviceAccount.namespace | Namespace for created ServiceAccount | "" |
serviceAccount.annotations | Extra ServiceAccount annotations | {} |
storeResults.enabled | Upload successful run logs to S3 | false |
storeResults.s3Bucket | S3 bucket name | "" |
storeResults.s3Prefix | S3 key prefix | agent-results |
storeResults.iamRoleArn | IRSA role ARN (EKS) | "" |
storeResults.awsAccessKeyId | AWS key id when not using IRSA | "" |
storeResults.awsSecretAccessKey | AWS secret when not using IRSA | "" |
storeResults.awsRegion | AWS region | us-east-1 |