标签 Pencil 下的文章

1 ) ai 的落地一直在业内探索,但是个人感觉这几年其实进展都不太大。无论 4o 的生图当时有多么牛 b ,真正用起来其实也就那么回事儿(我曾帮人用这玩意儿改图改了 3 个小时,还不如直接拿 ps 搞的快,别说模型问题,我把顶级主流都用遍了)。无论你们喊 ai 医疗、ai 教育,喊的多么火热, 真实落地的没下几场大雨

2 ) ai 编码大概是当前最具有确定性的场景,所以从去年下半年开始,各大厂商都在往这里面卷

3 )当前这个时间点,claude code 成了一个异类。尤其是在 opus 升级以后,claude code 的稳定可靠逐渐被大家发现和认识到了,这个趋势还在逐渐加强

4 )个人浅见,很有可能,所谓的 ai 革命只能革掉程序员们。讲真, 即便是在最擅长的写作领域,AI 就是个辅助。其他喊的很花的领域就更差了,他确实能给你一个 ppt ,但是也限于拿来玩一下而已。真要拿来搞年终汇报,还得上手自己去改,改到最后你可能觉得还不如自己去重新写一个

5 )但编码这个领域不一样了。在这个领域里面 AI 真实的改变了生产力。这个改变,在我看来是这样:以前大家都是手工艺人, 只能一点点打磨东西;现在不一样了,有机器了,现在大家必须从手艺人转变成操作机器的机车工。

6 )所以软件行业在发生一场巨变。以前是手工产出,现在改为机器产出。最终达到的是工业那样的革命,机器、汽车,无 处不在。软件成本太低了,随手可得。但是这又有一个问题,我们真的需要那么多软件么?就好像每个人都需要一辆车一样?

7 )再类比一下。很可能在汽车的生产力大幅提高以前,大家也很难想象,居然会每家都有一辆车。 所以这个事情的发展有两种可能。向左,其实大家并不需要那么多软件,于是这个事情很快就会沉寂下去。向右, 一种很科幻的可能:AI 会打开人与信息世界的全息窗口,每个人随身都在伴生无数软件。但是看起来还有点遥远。

8 )最近爆火的几个工具究其本质来看,好像是在用 coding 能力驾驭其他能力。pencil 、remotion 等。 所以这个事情好像现在变成了一场,coding 能力的全面升华。于是程序员们会觉得自己很强大。其他领域的牛马们,说不定最后都得来了解一下编码了。以后使用 claude code 处理 excel 必须是职场人标配。

昨天看到了 pencil(佬补充之前一直有 MCP 服务(好像是 25 年),昨天我才看见 ),于是在 linux(系统为 Ubuntu 24.04.3 LTS)上下载了一个 Tarball 版本,按照通用步骤配置了 nvm,以及 nodejs,安装了 claude code,并配置了中转的 api 端点,控制台使用没有问题。但是 pencil 的界面打开聊天之后依旧显示需要 /login,于是写了一个脚本,用来自定义 pencil 的 api 端点。如果佬们有更好的办法,欢迎在下面补充(~~ 第一次写类似的,有问题希望佬前来指正)

步骤如下,先测试一下 api 端点和模型能否访问:

测试脚本 (记得切换测试模型)
#!/bin/bash

#============================================================
# API 配置测试脚本
# 用于验证你的 API 端点和密钥是否配置正确
#============================================================

GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
BLUE='\033[0;34m'
NC='\033[0m' # No Color

echo -e "${BLUE}==================================${NC}"
echo -e "${BLUE}Pencil API 配置测试${NC}"
echo -e "${BLUE}==================================${NC}"
echo ""

# 读取用户输入
read -p "请输入你的 API 端点 (例如: https://api.anthropic.com): " API_ENDPOINT
read -p "请输入你的 API 密钥: " API_KEY

if [ -z "$API_ENDPOINT" ] || [ -z "$API_KEY" ]; then
    echo -e "${RED}错误: API 端点和密钥不能为空${NC}"
    exit 1
fi

echo ""
echo -e "${YELLOW}正在测试 API 连接...${NC}"

# 测试 API 连接
RESPONSE=$(curl -s -w "\n%{http_code}" \
  -H "x-api-key: $API_KEY" \
  -H "anthropic-version: 2023-06-01" \
  -H "content-type: application/json" \
  "$API_ENDPOINT/v1/messages" \
  -d '{
    "model": "claude-opus-4-5",
    "max_tokens": 10,
    "messages": [{"role": "user", "content": "Hi"}]
  }')

HTTP_CODE=$(echo "$RESPONSE" | tail -n1)
BODY=$(echo "$RESPONSE" | sed '$d')

echo ""
echo -e "${BLUE}==================================${NC}"
echo -e "${BLUE}测试结果${NC}"
echo -e "${BLUE}==================================${NC}"

if [ "$HTTP_CODE" = "200" ]; then
    echo -e "${GREEN}✓ API 连接成功!${NC}"
    echo -e "${GREEN}HTTP 状态码: $HTTP_CODE${NC}"
    echo ""
    echo -e "${YELLOW}响应内容:${NC}"
    echo "$BODY" | python3 -m json.tool 2>/dev/null || echo "$BODY"
    echo ""
    echo -e "${GREEN}你的配置正确!可以使用启动脚本了。${NC}"
    echo ""
    echo -e "${YELLOW}下一步:${NC}"
    echo "1. 编辑 start-pencil-custom.sh"
    echo "2. 修改 API_ENDPOINT=\"$API_ENDPOINT\""
    echo "3. 修改 API_KEY=\"${API_KEY:0:10}...\""
    echo "4. 运行: ./start-pencil-custom.sh"
else
    echo -e "${RED}✗ API 连接失败${NC}"
    echo -e "${RED}HTTP 状态码: $HTTP_CODE${NC}"
    echo ""
    echo -e "${YELLOW}错误响应:${NC}"
    echo "$BODY"
    echo ""
    echo -e "${YELLOW}可能的原因:${NC}"
    echo "1. API 密钥无效或已过期"
    echo "2. API 端点 URL 不正确"
    echo "3. 网络连接问题"
    echo "4. API 端点不兼容 Anthropic API 格式"
    echo ""
    echo -e "${YELLOW}请检查你的配置后重试${NC}"
fi

echo -e "${BLUE}==================================${NC}"

然后按照如下步骤修改配置文件:

修改启动脚本
  1. 编辑启动脚本

    nano start-pencil-custom.sh
    

    修改以下两行:

    export API_ENDPOINT="https://your-api-endpoint.com" export API_KEY="sk-your-actual-api-key-here" 
  2. 启动 Pencil

    ./start-pencil-custom.sh
    

启动脚本的代码如下:

启动脚本
#!/bin/bash

#============================================================
# Pencil 自定义 API 启动脚本
# 使用方法:
# 1. 修改下面的 API_ENDPOINT 和 API_KEY 变量
# 2. chmod +x start-pencil-custom.sh
# 3. ./start-pencil-custom.sh
#============================================================

# ==================== 配置区域 ====================

# 你的自定义 API 端点(替换为你的实际端点)
# 示例:export API_ENDPOINT="https://api.openai.com/v1"
# 示例:export API_ENDPOINT="https://your-custom-api.com/v1"
export API_ENDPOINT="中转站的api"

# 你的 API 密钥(替换为你的实际密钥)
# 安全提示:不要将真实密钥提交到版本控制系统
export API_KEY="sk-xxx"

# Claude 模型选择(可选)
# 可选值: claude-opus-4-5, claude-sonnet-4-5, claude-haiku-4-5
export CLAUDE_MODEL="claude-opus-4-5"

# ================= 高级配置(可选) =================

# Anthropic Beta 功能
export ANTHROPIC_BETAS="fine-grained-tool-streaming-2025-05-14"

# 调试模式(设置为 1 启用调试日志)
# export DEBUG=1
# export DEBUG_SDK=1

# 配置目录(默认:~/.config/Pencil)
# export CLAUDE_CONFIG_DIR="$HOME/.config/Pencil"

# ==================== 脚本逻辑 ====================

# 颜色输出
GREEN='\033[0;32m'
YELLOW='\033[1;33m'
RED='\033[0;31m'
NC='\033[0m' # No Color

# Pencil 可执行文件路径
PENCIL_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PENCIL_EXEC="$PENCIL_DIR/pencil"

# 检查 Pencil 是否存在
if [ ! -f "$PENCIL_EXEC" ]; then
    echo -e "${RED}错误: 找不到 Pencil 可执行文件${NC}"
    echo -e "${YELLOW}期望路径: $PENCIL_EXEC${NC}"
    exit 1
fi

# 设置环境变量
export ANTHROPIC_API_URL="$API_ENDPOINT"
export ANTHROPIC_API_KEY="$API_KEY"

# 如果设置了模型,导出模型环境变量
if [ -n "$CLAUDE_MODEL" ]; then
    export CLAUDE_DEFAULT_MODEL="$CLAUDE_MODEL"
fi

# 显示配置信息
echo -e "${GREEN}==================================${NC}"
echo -e "${GREEN}Pencil 自定义 API 启动${NC}"
echo -e "${GREEN}==================================${NC}"
echo -e "${YELLOW}API 端点:${NC} $API_ENDPOINT"
echo -e "${YELLOW}API 密钥:${NC} ${API_KEY:0:10}...${API_KEY: -4}" # 只显示部分密钥
echo -e "${YELLOW}模型:${NC} $CLAUDE_MODEL"
echo -e "${YELLOW}配置目录:${NC} ${CLAUDE_CONFIG_DIR:-$HOME/.config/Pencil}"
echo -e "${GREEN}==================================${NC}"
echo ""

# 验证配置
if [ "$API_KEY" = "sk-ant-your-api-key-here" ]; then
    echo -e "${RED}警告: 你还没有设置真实的 API 密钥!${NC}"
    echo -e "${YELLOW}请编辑此脚本,修改 API_KEY 变量${NC}"
    echo ""
    read -p "是否继续?(y/N) " -n 1 -r
    echo
    if [[ ! $REPLY =~ ^[Yy]$ ]]; then
        exit 1
    fi
fi

# 启动 Pencil
echo -e "${GREEN}正在启动 Pencil...${NC}"
"$PENCIL_EXEC" "$@"

# 保存退出代码
EXIT_CODE=$?

# 显示退出信息
if [ $EXIT_CODE -eq 0 ]; then
    echo -e "${GREEN}Pencil 已正常退出${NC}"
else
    echo -e "${RED}Pencil 退出异常 (退出码: $EXIT_CODE)${NC}"
    echo -e "${YELLOW}请检查日志: ~/.config/Pencil/logs/main.log${NC}"
fi

exit $EXIT_CODE

运行的时候可能会报错,例如显示:Pencil-1.1.1-linux-x64/chrome-sandbox is owned by root and has mode 4755.

这时候使用如下命令:

sudo chown root:root chrome-sandbox
sudo chmod 4755 chrome-sandbox

然后再去启动脚本应该就可以了正常启动了,欢迎佬们补充更好的方案。


📌 转载信息
原作者:
EXQS
转载时间:
2026/1/23 12:05:10