Oracle AI CLI: Gửi Context Code Cho AI Đánh Giá
Oracle là một CLI và MCP server đóng gói một prompt cùng các file bạn chọn, gửi gói đó qua API của nhà cung cấp hoặc qua phiên trình duyệt đã đăng nhập, rồi lưu cuộc trao đổi thành session trên máy. Oracle tiếp cận OpenAI, Anthropic, Gemini, xAI, Azure OpenAI, và OpenRouter ở chế độ API, cùng ChatGPT và Gemini qua browser automation. Dùng Oracle khi cần một review AI bám sát file thật; bỏ qua nếu một cửa sổ chat thường đã đủ.
Oracle Là Gì?
Oracle là một CLI và MCP server dùng để đóng gói context code và gửi nó tới một large language model để review. Oracle gói một prompt cùng các file, thư mục, hoặc glob bạn chọn, gửi gói đó qua API của nhà cung cấp hoặc qua trình duyệt đã đăng nhập, và lưu kết quả tại ~/.oracle/sessions để xem lại sau. Oracle được xây cho các nhà phát triển và cả coding agent muốn có ý kiến thứ hai bám sát dự án thật, thay vì một đoạn mô tả dán vào chat.
Hướng Dẫn Cài Đặt
Trên macOS hoặc Linux, Homebrew cài Oracle bằng brew install steipete/tap/oracle. Ở bất kỳ đâu có Node.js, npm install -g @steipete/oracle cài CLI toàn cục — nhưng Oracle cần Node 24 trở lên mới chạy được. Để thử mà không cần cài gì, npx -y @steipete/oracle --help tải về một lần và in ra phần trợ giúp. Một hướng dẫn cài đặt riêng trong repo (docs/install.md) nói kỹ hơn về đường pnpm, cập nhật, thiết lập API key, và nơi lưu file so với README ở cấp cao nhất.
Bắt Đầu Và Kiểm Soát Context
Lần chạy đầu thường bắt đầu với --render, ví dụ oracle --render -p "Review the package metadata for release risks" --file package.json, lệnh này in ra đúng prompt và nội dung file đã đánh số dòng mà không đụng tới credential hay gọi tới mô hình nào. Bỏ --render khi đã cấu hình một provider, và cùng dạng lệnh đó sẽ gửi gói đi và trả về câu trả lời — --file nhận từng file riêng lẻ, cả thư mục, glob pattern như src/oracle/**/*.ts, hoặc một exclusion bắt đầu bằng ! như !**/*.test.ts, và bạn có thể lặp lại flag này để ghép đúng context muốn review. Nếu không chỉ định, Oracle tự chọn chế độ API khi tìm thấy OpenAI key và chuyển sang chế độ trình duyệt nếu không có; --engine api hoặc --engine browser ghi đè lựa chọn đó. Trước khi tốn một request, --dry-run summary --files-report liệt kê những file thực sự được resolve và ước tính số token. Mỗi bundle được tạo ra đều đánh số dòng, đó là lý do câu trả lời có thể trích dẫn đúng path:line thay vì một tham chiếu mơ hồ.
Tính Năng Cốt Lõi
- ✓Ba engine để chọn: chế độ API cho các lần chạy có thể lập script khi đã có provider key, chế độ trình duyệt để tận dụng phiên ChatGPT hoặc Gemini đã đăng nhập sẵn sau một lần đăng nhập Chrome, và chế độ render, không cần tài khoản hay key nào vì không có gì rời khỏi máy bạn.
- ✓Chế độ API tiếp cận OpenAI, Azure OpenAI, Anthropic, Gemini, xAI, OpenRouter, và các endpoint tương thích OpenAI khác.
- ✓--file ghép context từ từng file riêng lẻ, cả thư mục, glob pattern, và các exclusion bắt đầu bằng !, có thể lặp lại trong cùng một lệnh.
- ✓Các bundle văn bản được tạo ra mang số dòng cố định, nhờ đó câu trả lời của mô hình có thể trỏ đúng về một path:line cụ thể.
- ✓Các lần chạy được lưu tại ~/.oracle/sessions; một câu trả lời chậm vẫn tiếp tục chạy nền thay vì chặn terminal của bạn, và oracle status --hours 72 liệt kê những gì đã chạy gần đây.
- ✓--followup tiếp tục một cuộc hội thoại API hoặc ChatGPT đang có với thêm context, thay vì bắt đầu lại từ đầu.
- ✓--models gửi cùng một prompt tới nhiều mô hình trong một lần chạy và ghi lại usage, chi phí, output, và bất kỳ lỗi cục bộ nào của từng mô hình.
- ✓Một server oracle-mcp dạng stdio, cùng một Oracle skill có thể cài đặt, cho phép các MCP client như Claude Code, Codex, và Cursor gọi Oracle trực tiếp như một tool.
Ứng Dụng Thực Tế Cho Nhà Phát Triển
- •Giới hạn một review AI vào đúng phần code cần xem, ví dụ --file "src/oracle/**/*.ts" --file "!**/*.test.ts", và nhận câu trả lời trích dẫn đúng file và dòng.
- •Kiểm tra trước những gì thực sự sẽ được gửi đi trước khi tốn request hoặc lộ file, bằng --render hoặc --dry-run summary --files-report để xem trước bundle và ước tính token.
- •Chạy cùng một câu hỏi trên nhiều provider cùng lúc bằng --models để so sánh chi phí, output, và lỗi cạnh nhau — hữu ích khi bạn không tin hoàn toàn vào một mô hình duy nhất.
- •Gắn Oracle vào bộ công cụ của chính một agent qua server oracle-mcp dạng stdio, để một coding agent, chứ không chỉ con người, có thể xin ý kiến thứ hai bám sát dữ liệu thật ngay giữa tác vụ.
- •Quay lại hoặc lặp lại một review chạy lâu sau đó bằng oracle session, oracle restart, hoặc --followup, thay vì gửi lại toàn bộ context từ đầu.
Oracle Dành Cho Ai?
Oracle phù hợp với các nhà phát triển đang dùng cùng lúc nhiều provider mô hình và muốn một CLI duy nhất có thể gửi cùng một context bám sát file thật tới bất kỳ provider nào trong số đó, cùng các coding agent cần xin ý kiến thứ hai giữa tác vụ qua MCP. Nó cũng hợp với ai muốn xem trước chính xác những gì sẽ được gửi đi, vì chế độ render không cần key hay tài khoản nào cả. Bỏ qua nếu bạn chỉ thỉnh thoảng hỏi một mô hình một câu trong tab trình duyệt — phần lưu session, bảng so sánh nhiều mô hình, và kết nối MCP sẽ là thứ bạn không dùng tới.
Điểm Mạnh
- ✓--render cho xem đúng prompt và bundle file mà không cần credential nào trước khi bất cứ thứ gì tới mô hình — tốt cho độ tin cậy và kiểm soát những gì rời khỏi máy bạn.
- ✓Phạm vi đa provider thực sự ở chế độ API: OpenAI, Azure OpenAI, Anthropic, Gemini, xAI, OpenRouter, và các endpoint tương thích, theo README.
- ✓Lưu session tại ~/.oracle/sessions nghĩa là một câu trả lời chậm vẫn tiếp tục chạy nền thay vì chặn terminal, và bạn có thể quay lại gắn vào sau.
- ✓--models chạy một so sánh đa mô hình thực sự trong một lệnh, ghi lại usage, chi phí, output, và lỗi cục bộ cùng nhau thay vì buộc phải chạy riêng từng lần.
- ✓Hỗ trợ MCP (oracle-mcp, một skill có thể cài đặt) biến Oracle thành thứ một coding agent có thể gọi trực tiếp, chứ không chỉ là tool con người tự chạy tay.
- ✓Giấy phép MIT, không ràng buộc bản quyền độc quyền nào.
Những Điều Cần Cân Nhắc Và Giới Hạn
- △README ở cấp cao nhất đẩy khá nhiều chi tiết sang các tài liệu riêng (cài đặt, quickstart, chế độ trình duyệt, CLI reference, và hơn thế) thay vì mô tả trực tiếp việc cập nhật, nơi lưu file, hay toàn bộ tập flag.
- △Chế độ trình duyệt không phải zero-setup: cần cài Chrome và một lần đăng nhập trước khi truy cập ChatGPT hoặc Gemini qua chế độ này hoạt động được.
- △Trong phạm vi dữ kiện có được, chế độ API chỉ gồm các provider trên cloud — OpenAI, Azure OpenAI, Anthropic, Gemini, xAI, OpenRouter, và các endpoint tương thích — không có gì về mô hình local hay self-hosted.
- △Cài qua npm cần Node.js 24 trở lên, loại trừ các setup Node cũ hơn nếu chưa chuyển version.
- △Không có số phiên bản, ngày phát hành, hay changelog nào trong dữ kiện có được, nên không có cách nào được ghi lại để đánh giá độ trưởng thành hay tốc độ cập nhật của một bản phát hành cụ thể.
Các Dự Án Thay Thế Và Liên Quan
Câu Hỏi Thường Gặp
Chế độ API của Oracle tiếp cận OpenAI, Azure OpenAI, Anthropic, Gemini, xAI, và OpenRouter cùng các endpoint tương thích khác, còn chế độ trình duyệt có thể điều khiển ChatGPT và Gemini qua một phiên đã đăng nhập.
Oracle cần Node.js 24 trở lên. Bạn có thể cài bằng Homebrew (steipete/tap/oracle) trên macOS hoặc Linux, cài package npm @steipete/oracle toàn cục, hoặc thử một lần bằng npx -y @steipete/oracle --help trước khi quyết định cài hẳn.
Oracle xây context bằng --file, nhận từng file riêng lẻ, thư mục, glob, và các exclusion bắt đầu bằng ! lặp lại trong một lệnh, sau đó đánh số từng dòng của bundle kết quả để câu trả lời có thể trích dẫn đúng path:line.
Oracle có chế độ trình duyệt điều khiển một phiên Chrome đã đăng nhập để tiếp cận ChatGPT và dùng một client dựa trên cookie cho Gemini, như một cách thay thế cho việc đi qua API của nhà cung cấp.
Oracle được phát hành theo giấy phép MIT, theo repository GitHub của dự án.
Oracle lưu mỗi lần chạy tại ~/.oracle/sessions để các câu trả lời chậm vẫn tiếp tục chạy nền; oracle status liệt kê các lần chạy gần đây, oracle session gắn lại vào một lần chạy, oracle restart lặp lại nó, và --followup tiếp tục một cuộc hội thoại API hoặc ChatGPT đang có với thêm context.
Vấn Đề Oracle Giải Quyết
Xin ý kiến thứ hai từ một mô hình AI về code thường có nghĩa là dán từng file vào cửa sổ chat bằng tay, mất số dòng, và phải làm lại từ đầu mỗi khi muốn xem lại câu trả lời. Chính tagline trên GitHub của Oracle nói thẳng về khoảng trống đó: gọi một mô hình như GPT-5 Pro với context và tập file được chọn sẵn. README xây dựng thêm từ đó bằng cách lưu cuộc trao đổi thành một session gắn với các file thật, gửi qua API hoặc trình duyệt thật, thay vì một lần copy-paste rời rạc.
Repo liên quan
Muốn nghe thêm một ý kiến về oracle?
Hỏi một AI đọc được trang này — một cú bấm là có ngay nhận định về oracle.
