• 请不要在回答技术问题时复制粘贴 AI 生成的内容
sinotw
V2EX  ›  程序员

一个我觉的挺有用的终端 AI 工具 tgpt

  •  
  •   sinotw · Apr 11, 2025 · 2414 views
    This topic created in 450 days ago, the information mentioned may be changed or developed.

    看别人 blog 偶尔发现的。 warp 中有 AI 助手,挺好用的,但 iTerm 就只能靠自己了,这个 tgpt 就能实现 warp 差不多的功能。不用任何 API key

    安装

    curl -sSL https://raw.githubusercontent.com/aandrew-me/tgpt/main/install | bash -s /usr/local/bin
    

    使用

    1. 一般使用
    ➜  ~ tgpt "lua 是什么?"
    
    Lua 是一种轻量级、高效的脚本语言,主要用于游戏开发和嵌入式系统。以下是 Lua 的一些关键特点:
    
    1. 简单易学:Lua 的语法简洁明了,学习曲线较低。
    
    2. 高效性:Lua 的解释器非常快速,可以在各种平台上运行。
    
    3. 多用途:常用于游戏开发、Web 服务器、自动化脚本等领域。
    
    4. 动态类型:Lua 是动态类型语言,不需要显式声明变量类型。
    
    5. 面向对象:支持面向对象编程,但不是强制性的。
    
    6. 模块化:可以通过模块系统组织代码。
    
    7. 可扩展性:允许用户自定义元表( metatables )来扩展语言功能。
    
    8. 跨平台:可以在多种操作系统和设备上运行。
    
    9. 社区活跃:有大量开源库和文档可供使用。
    
    10. 性能优化:适合在资源受限的环境中使用。
    
    Lua 被广泛应用于游戏开发,如 World of Warcraft 、Warcraft III 等,以及一些著名的游戏引擎如 Roblox 和 Garry's Mod 。
    
    如果您想了解更多关于 Lua 的信息,可以查看官方网站: https://www.lua.org/
    

    2.--shell shell 辅助

    tgpt 一大亮点就是自动生成命令的能力生成命令后,提示我们是否直接执行。

    ➜  ~
    ➜  ~ tgpt --shell "在~/Workspace 目录中查找 2024 年 11 月 30 日之前创建的 python 文件,并把查询结果输出到当前目录的 result.txt 文件中"
    find ~/Workspace -name "*.py" -newermt "2024-11-30" > ~/result.txt
    
    Execute shell command? [y/n]: y
    ➜  ~
    

    3.--code 代码辅助

    ➜  ~
    ➜  ~ tgpt --code "生成一段创建 10 个随机数的数组的 Typescript 代码"
    
    const randomArray = Array.from({length: 10}, () => Math.floor(Math.random() * 100));
    console.log(randomArray);
    
    ➜  ~
    

    4.-i 对话

     tgpt -i
    Interactive mode started. Press Ctrl + C or type exit to quit.
    
    ╭─ You
    ╰─> 你好
    
    ╭─ Bot
    您好!我是 Phind 的编程助手。很高兴为您提供帮助。如果您有任何编程相关的问题或任务,请随时告诉我。我可以在 VSCode 中协助您解决各种编程问题。
    
    ╭─ You
    ╰─> 编写一个 python 代码,输出 1-100 之内的质数
    
    ╭─ Bot
    以下是一个 Python 代码,用于输出 1-100 之间的素数:
    
    
    def is_prime(n):
        if n <= 1:
            return False
        if n == 2:
            return True
        if n % 2 == 0:
            return False
        max_divisor = int(n**0.5) + 1
        for d in range(3, max_divisor, 2):
            if n % d == 0:
                return False
        return True
    
    prime_numbers = [n for n in range(1, 101) if is_prime(n)]
    print(prime_numbers)
    # If you come from bash you might have to change your $PATH.
    
    
    这个代码做了以下几件事:
    
    1. 定义了一个 is_prime()函数来检查数字是否为素数。
    2. 使用列表推导式生成 1-100 之间的素数。
    3. 打印出这些素数。
    
    这个代码的时间复杂度是 O(n*sqrt(n)),空间复杂度是 O(n)。
    
    如果您需要更优化的算法,可以考虑使用 Sieve of Eratosthenes 算法,它的时间复杂度是 O(n log log n)。如果您想了解更多关于 Sieve of Eratosthenes 算法的信息,请告诉我。
    
    ╭─ You
    ╰─> exit
    Exiting...
    

    5.--img 生成图片

    ➜  ~ tgpt --img "cat"
    Generating image with pollinations.ai...
    Saved image as Ni66e7QtdrbiP0yrorps.jpg
    ➜  ~ ll
    

    总之,没什么特殊的开销的基础上,效果我认为还不错了。 话说怎么今天 V2 没法贴图了啊。。。

    4 replies    2025-04-11 17:48:04 +08:00
    suofeiya
        1
    suofeiya  
       Apr 11, 2025
    确实不错,不过 iterm2 不是自带有 AI ?

    soul966
        2
    soul966  
       Apr 11, 2025
    这个可以离线用吗?内网环境想用 ai 感觉基本不行了,这个估计是不是离线也不行
    sinotw
        3
    sinotw  
    OP
       Apr 11, 2025
    @joyxubing966
    确实不行
    sinotw
        4
    sinotw  
    OP
       Apr 11, 2025
    @suofeiya
    是的,我刚发现,不过这个好在不需要什么 key 吧,开箱即用
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   2685 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 43ms · UTC 15:28 · PVG 23:28 · LAX 08:28 · JFK 11:28
    ♥ Do have faith in what you're doing.