Classifai is a powerful and user-friendly command-line tool for AI-powered classification tasks. It leverages the capabilities of large language models to provide accurate and efficient classification of various types of content.
- Easy-to-use command-line interface
- Supports multiple classification categories
- Utilizes advanced language models for high accuracy
- Customizable prompts and examples
- Supports both OpenAI and OpenRouter models
pip install pipx
pipx install classifai
-
Multiple classification with Examples:
classifai 'news.ycombinator.com' 'facebook.com' 'ai.meta.com' \ --classes 'signal' 'noise' 'neutral' \ --examples "github.com:signal" "arxiv.org:signal" "instagram.com:noise" \ "pintrest.com:noise" "anthropic.ai:signal" "twitter.com:noise" \ --model openrouter/openai/gpt-4-0314
[ { "content": "news.ycombinator.com", "classification": "signal", "score": 1.0 }, { "content": "facebook.com", "classification": "noise", "score": 1.0 }, { "content": "ai.meta.com", "classification": "signal", "score": 1.0 } ]
-
Terminal commands classification:
'df -h' 'chown -R user:user /' -c 'safe' 'danger' 'neutral' -e "ls:safe" "rm:danger" "echo:neutral" --m gpt-4o-mini
[ { "content": "df -h", "classification": "safe", "score": 1.0 }, { "content": "chown -R user:user /", "classification": "danger", "score": 1.0 } ]
-
Classify a tweet
classifai $tweet --classes 'AI' 'ASI' 'AGI' -m gpt-4o-mini
[ { "content": "Superintelligence is within reach.\n\nBuilding safe superintelligence (SSI) is the most important technical problem of our\u200b\u200b time.\n\nWe've started the world\u2019s first straight-shot SSI lab, with one goal and one product: a safe superintelligence.", "classification": "ASI", "score": 1.0 } ]
classifai $tweet --classes 'PROGRAMING' 'MACHINE-LEARNING' -m gpt-4o-mini
[ { "content": "Superintelligence is within reach.\n\nBuilding safe superintelligence (SSI) is the most important technical problem of our\u200b\u200b time.\n\nWe've started the world\u2019s first straight-shot SSI lab, with one goal and one product: a safe superintelligence.", "classification": "MACHINE-LEARNING", "score": 0.833334466588825 } ]
class-tweet() {
local tweet="$1"
local threshold=0.6
local class="MACHINE-LEARNING"
result=$(classifai "$tweet" -c 'PROGRAMMING' 'MACHINE-LEARNING' \
-m openrouter/openai/gpt-4o-mini \
| jq -r '.[0] | select(.classification == "'"$class"'" and .score > '"$threshold"') | .classification')
if [ -n "$result" ]; then
echo "Tweet classified as $class with high confidence. Executing demo..."
echo "Demo: This is a highly relevant tweet about $class"
else
echo "Tweet does not meet classification criteria."
fi
}
Classifai now supports reading from stdin and writing to stdout, making it easier to use in pipelines and shell scripts.
You can pipe content into classifai:
echo "This is a test sentence" | classifai -c 'positive' 'negative' 'neutral'
Or use heredoc for multiple lines:
cat <<EOF | classifai -c 'tech' 'sports' 'politics' -f simple
AI makes rapid progress
Football season starts soon
New tax policy announced
EOF
By default, classifai outputs JSON, which can be easily parsed by other tools:
echo "OpenAI releases GPT-4" | classifai -c 'tech' 'business' | jq '.[0].class'
For simpler output that's easier to use in shell scripts, use the -f simple
option:
echo "Breaking news: earthquake hits city" | classifai -c 'world' 'local' 'sports' -f simple | cut -f2
This will output only the classified class, making it easy to use in conditionals:
if [[ == "world" ]]; then
echo "This is world news"
fi
These enhancements make classifai more versatile and easier to integrate into complex data processing pipelines and shell scripts.