All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Bumped kagi-ken dependency to 1.3.0 (summarizer fixes for Kagi's updated streaming API format)
- Obsolete
docs/directory and references to it in README
--limitoption tosearchcommand to control maximum number of search results returned- Default limit of 10 results when no limit is specified
- Input validation for limit parameter (must be positive integer)
- Updated help text with examples showing limit usage
- Enhanced search command to pass limit parameter to core kagi-ken package
- Improved error handling for invalid limit values
- Limit parameter is passed through to core
kagi-kenpackage'ssearch()function - Related searches are always included regardless of limit (handled by core package)
- Backward compatible - existing usage without
--limitcontinues to work
- Fixes broken
package.jsonreference which prevented installation
- Project Structure: Moved main entry point from
index.jstosrc/index.jsfor better organization - Updated package.json
binentry point to reflect new file location - Refreshed dependencies in pnpm-lock.yaml
- BREAKING: Renamed both the repo
kagi-kenand the toolkagi-kentokagi-ken-cli. Because … - BREAKING: Core functionality has been extracted into separate
kagi-kenpackage - CLI now depends on external
kagi-kenpackage instead of containing core functionality directly - Removed
src/web-client.js- functionality moved tokagi-kenpackage - Updated CLI commands to import
searchandsummarizefunctions fromkagi-kenpackage - Updated dependencies: replaced
cheeriowithkagi-kenpackage dependency
- Architecture: Clean separation between CLI interface and core functionality
- Modularity: Core
kagi-kenpackage can now be used by other projects programmatically - Maintainability: CLI focused solely on command-line interface concerns
- Documentation: Updated all documentation files to reflect new package architecture
- CLI maintains identical interface and functionality for end users
- Package dependency uses GitHub repository:
github:czottmann/kagi-ken#1.0.0 - All existing authentication, error handling, and output formatting preserved
- Summarizer: Fixed parsing issue where "final:" prefix wasn't properly removed from streaming response messages, causing JSON parsing failures for uncached URLs
Renamed both the repo kagi-web-search and the tool kagi-search to kagi-ken. I think it's about time since 1.3 introduced support for the Summarizer, exceeding the initial "search only" scope.
- CLI Binary: Fixed module entry condition that prevented kagi-ken from running when installed via npm
- Help Display: Added automatic help display when no command arguments are provided
- Resolved symlink path differences between
import.meta.urlandprocess.argv[1]in npm installations
- Kagi Summarizer Support: New
summarizecommand for URL and text summarization- Support for both URL (
--url) and text (--text) summarization modes - Configurable summary types:
summary(default) andtakeawayvia--typeflag - Multi-language support via
--languageflag (defaults to "EN") - Extracts and returns
output_data.markdowncontent asdata.output
- Support for both URL (
- Extended
src/web-client.jswithperformSummarize()function for HTTP/streaming support - Updated CLI help system and command dispatcher to include summarizer functionality
- Enhanced authentication to work with both search and summarization endpoints
- BREAKING: Changed CLI syntax from
kagi-ken "query"tokagi-ken search "query"(command-based structure) - BREAKING: Migrated from CommonJS to ES Modules with
"type": "module"in package.json
- Command-based CLI architecture
searchsubcommand with current search functionalityhelpcommand supporting both patterns:kagi-ken help searchandkagi-ken search --help
- BREAKING: Replaced
KAGI_SESSION_TOKENenvironment variable authentication with~/.kagi_session_tokenfile-based authentication - Authentication priority:
--tokenflag now takes precedence over~/.kagi_session_tokenfile - Updated CLI help text and error messages to reference file-based authentication
- Improved security by preventing token exposure in process lists and environment variables
readTokenFromFile()helper function with robust error handling for missing files, permission errors, and empty files- File-based token storage with automatic content trimming to handle whitespace/newlines
- Enhanced documentation across all project files reflecting new authentication method
- Token authentication now uses more secure file-based approach instead of environment variables
- Updated README.md with file-based authentication examples
- Updated all documentation in
docs/directory to reflect new authentication method - Updated CLAUDE.md project guidance with current implementation details
- Added comprehensive usage examples for file-based token storage
- Initial release of kagi-ken CLI tool
- Command-line interface using Commander.js framework
- HTML parsing of Kagi search results using Cheerio
- JSON output matching Kagi API schema format
- Session token authentication via
--tokenflag or environment variable - Support for main search results, grouped results, and related searches
- Comprehensive error handling for network issues, authentication failures, and parsing errors
- Complete project documentation and specifications