genie

command module
v0.1.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 1, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

README

🧞 genie (by Stackgen)

Go Reference Go Report Card CI License OpenSSF Best Practices Release Scorecard

Generative Engine for Natural Intent Execution

"Your intent is my command."

genie is an Enterprise Agentic Platform powered by Stackgen. Describe what you need — across code, operations, security, and beyond — and let genie plan and execute it.


✨ Enterprise Differentiators

genie is a platform designed for reliability, compliance, and scale.

  • ReAcTree Execution Engine: A deterministic, multi-stage reasoning engine that ensures verifiable plans.
  • Agentic Execution: Plans, decomposes, and executes complex multi-step tasks autonomously with sub-agent orchestration.
  • Governance & Audit: Built-in Human-in-the-Loop (HITL) guardrails and immutable audit logs ensure strict compliance.
  • Multi-Model Routing: Intelligently routes tasks to the best model (OpenAI, Gemini, Anthropic, Ollama, HuggingFace) for cost and performance.
  • Enterprise Integrations: Seamlessly integrates with OpsVerse ObserveNow for full-stack observability and Aiden for automated incident response.
  • Skills & MCP: Extensible via a file-based skills system and full MCP protocol support.

🚀 Get Started

Prerequisites
  • Go 1.25+ (only for building from source)
  • CGO enabled — required for SQLite via GORM (CGO_ENABLED=1 is set by default on most platforms)
Installation

Homebrew (macOS / Linux):

brew install stackgenhq/homebrew-stackgen/genie

Go install:

CGO_ENABLED=1 go install -mod=mod github.com/stackgenhq/genie@latest

Build from source:

git clone https://github.com/stackgenhq/genie.git
cd genie
make build        # binary at build/genie
make install      # install to $GOPATH/bin

Docker:

docker run --rm -it \
  -v ~/.genie.toml:/home/genie/.genie.toml \
  -v $(pwd):/workspace \
  ghcr.io/stackgenhq/genie:latest grant

GitHub Releases: Download pre-built binaries for macOS, Linux, and Windows from the Releases page.

Windows (Scoop):

scoop bucket add stackgen https://github.com/stackgenhq/homebrew-stackgen
scoop install genie
Grant Your First Wish

Ready to see the magic? Run the interactive wizard:

genie

Or use the explicit command:

genie grant
Deploying on Cloud Instances (EC2, Azure VM, GCP Compute)

Want to run Genie as a shared service for your team? Deploy it on a cloud instance with persistent storage and systemd management.

# 1. Install Docker on your instance
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# 2. Create a config directory
mkdir -p ~/.genie
nano ~/.genie/genie.toml  # Add your configuration

# 3. Run Genie with Docker
docker run -d \
  --name genie \
  --restart unless-stopped \
  -p 8080:8080 \
  -v ~/.genie:/home/genie/.config \
  -v /var/lib/genie/data:/workspace \
  -e OPENAI_API_KEY="${OPENAI_API_KEY}" \
  ghcr.io/stackgenhq/genie:latest grant
Option 2: Binary Installation with Systemd

For EC2 (Amazon Linux / Ubuntu):

# 1. Download and install the binary
curl -L https://github.com/stackgenhq/genie/releases/latest/download/genie_Linux_x86_64.tar.gz -o genie.tar.gz
tar xzf genie.tar.gz
sudo mv genie /usr/local/bin/
sudo chmod +x /usr/local/bin/genie

# 2. Create a genie user
sudo useradd -r -s /bin/false genie
sudo mkdir -p /etc/genie /var/lib/genie
sudo chown genie:genie /var/lib/genie

# 3. Create configuration
sudo nano /etc/genie/genie.toml
# Add your model config, see config.toml.example

# 4. Create systemd service
sudo tee /etc/systemd/system/genie.service > /dev/null <<EOF
[Unit]
Description=Genie Agentic Platform
After=network.target

[Service]
Type=simple
User=genie
Group=genie
WorkingDirectory=/var/lib/genie
Environment="OPENAI_API_KEY=your-key-here"
ExecStart=/usr/local/bin/genie grant --config /etc/genie/genie.toml
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
EOF

# 5. Start the service
sudo systemctl daemon-reload
sudo systemctl enable genie
sudo systemctl start genie
sudo systemctl status genie
Security Recommendations
  • Use IAM roles (AWS) or equivalent for secret management instead of hardcoded keys
  • Configure firewall: Only expose port 8080 to trusted IPs/VPCs
  • Enable HTTPS: Use a reverse proxy (nginx/caddy) with Let's Encrypt certificates
  • Set rate limits: Configure [agui] rate_limit and max_concurrent in your config
  • Regular updates: Set up automated security updates for your instance
  • Use cloud secret managers: Configure [security.secrets] for AWS Secrets Manager, GCP Secret Manager, or Azure Key Vault

Example with AWS Secrets Manager:

[security.secrets]
OPENAI_API_KEY = "awssecretsmanager://genie/openai?region=us-east-1&decoder=string"
ANTHROPIC_API_KEY = "awssecretsmanager://genie/anthropic?region=us-east-1&decoder=string"

Nginx reverse proxy example:

server {
    listen 443 ssl http2;
    server_name genie.example.com;

    ssl_certificate /etc/letsencrypt/live/genie.example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/genie.example.com/privkey.pem;

    location / {
        proxy_pass http://localhost:8080;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}

🛠 Commands

Command Description
genie or genie grant Interactive agentic wizard.

⚙️ Configuration

genie supports configuration via YAML or TOML files. You can customize model routing, tool access, security policies, and more.

By default, genie looks for .genie.yaml, .genie.yml, genie.yaml, or genie.yml in the current directory, and then falling back to $HOME/.genie.yaml.

You can also specify a config file explicitly:

genie grant --config /path/to/my-config.toml
Environment Variables & Secret Providers

Configuration values matching the pattern ${VAR_NAME} are resolved through the configured SecretProvider:

  • Default (env vars): Without a [security] section, placeholders resolve from environment variables — fully backward compatible.
  • Cloud / file backends: Add a [security.secrets] section to resolve secrets from GCP Secret Manager, AWS Secrets Manager, Azure Key Vault, mounted files, or any gocloud.dev/runtimevar backend.
  • Diagnostics: If a secret-like key (token, api_key, password, etc.) resolves to empty, genie emits a warning pointing to the missing variable name and config path.

See the Security section in the docs for full configuration details.

Example Configuration

Check out config.toml.example for a full example of available options.

[[model_config]]
provider = "openai"
model_name = "gpt-5.2"
token = "${OPENAI_API_KEY}"
good_for_task = "planning"

[[model_config]]
provider = "ollama"
model_name = "llama3"
host = "http://localhost:11434"
good_for_task = "tool_calling"

# Skills: Enable reusable agent capabilities
skills_roots = ["./skills"]  # Paths to skills directories
Skills System

genie supports a skills system based on the agentskills.io specification. Skills are reusable, self-contained capabilities that agents can discover, load, and execute.

Quick Start:

  1. Create a skills directory:

    mkdir -p skills/my-skill
    
  2. Add a SKILL.md file with YAML frontmatter:

    ---
    name: my-skill
    description: What this skill does
    ---
    
    # My Skill
    
    Detailed instructions...
    
  3. Configure in genie.toml:

    skills_roots = ["./skills"]
    

    Or use environment variable:

    export SKILLS_ROOT=./skills
    

Learn More: See docs/skills.md for complete documentation, examples, and best practices.


📖 The "Genie" Workflow

  1. Rub the Lamp: Call genie (or genie grant).
  2. Speak your Intent: Describe what you want to accomplish.
  3. Watch the Magic: genie plans, decomposes, and executes using multi-model orchestration.
  4. Review & Ship: Approve results through HITL guardrails and deploy with confidence.

Why call it Genie? Because at Stackgen, we believe complex tasks should feel like magic. Just express your intent and consider it granted.


🤝 Join the Movement

We are redefining agentic automation. If you want to contribute, check out our contribution guidelines.

  1. Fork the repo.
  2. Create your feature branch.
  3. Submit a PR.

📜 Community & Governance

Document Purpose
Contributing Guide How to contribute, build, and test
Code of Conduct Community behavior standards
Security Policy How to report vulnerabilities
Changelog Release notes and history
License Apache License 2.0

Built with ✨ by Stackgen. Complex tasks are hard. Being a Genie is easy.


Documentation

Overview

Package main is the entry point for genie, the Generative Engine for Natural Intent Execution.

Genie is an enterprise agentic platform. Describe what you need—across code, operations, security, and beyond—and genie plans and executes it using the ReAcTree execution engine, multi-model routing, and integrations (Slack, Discord, MCP, skills, observability). Use the "genie" or "genie grant" command to run the interactive setup; see the repository README for installation and usage.

Copyright © 2026 StackGen, Inc.

Directories

Path Synopsis
pkg
agentutils
Package agentutils provides utilities used by the agent and orchestrator layer.
Package agentutils provides utilities used by the agent and orchestrator layer.
agentutils/agentutilsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
agui
Package agui provides types and helpers for the Agent GUI (AG-UI) event protocol used by Genie to stream agent state to UIs (TUI, web, external systems).
Package agui provides types and helpers for the Agent GUI (AG-UI) event protocol used by Genie to stream agent state to UIs (TUI, web, external systems).
agui/aguifakes
Code generated by counterfeiter.
Code generated by counterfeiter.
app
Package app provides the Application service layer that owns the full Genie lifecycle: config → bootstrap → start → close.
Package app provides the Application service layer that owns the full Genie lifecycle: config → bootstrap → start → close.
audit
Package audit provides durable, structured logging of agent and tool events (commands, tool calls, LLM requests/responses, errors) for debugging and compliance.
Package audit provides durable, structured logging of agent and tool events (commands, tool calls, LLM requests/responses, errors) for debugging and compliance.
audit/auditfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
browser
Package browser provides a chromedp-backed browser automation provider.
Package browser provides a chromedp-backed browser automation provider.
clarify
Package clarify provides a durable store for clarifying questions that the LLM can ask the user.
Package clarify provides a durable store for clarifying questions that the LLM can ask the user.
config
Package config provides loading and aggregation of Genie configuration.
Package config provides loading and aggregation of Genie configuration.
cron
Package cron provides a recurring task scheduler whose task definitions and execution history are persisted in a GORM-backed database.
Package cron provides a recurring task scheduler whose task definitions and execution history are persisted in a GORM-backed database.
cron/cronfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
datasource
Package datasource defines the unified data source abstraction for Genie: connectors that enumerate items from external systems (Drive, Gmail, Slack, Linear, GitHub, Calendar) and produce normalized items for vectorization.
Package datasource defines the unified data source abstraction for Genie: connectors that enumerate items from external systems (Drive, Gmail, Slack, Linear, GitHub, Calendar) and produce normalized items for vectorization.
datasource/datasourcefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
db
Package db provides a central GORM-based database layer backed by SQLite.
Package db provides a central GORM-based database layer backed by SQLite.
dedup
Package dedup provides a generic type-safe wrapper around golang.org/x/sync/singleflight.
Package dedup provides a generic type-safe wrapper around golang.org/x/sync/singleflight.
doctor
Package doctor runs diagnostic checks on Genie configuration and environment (config file, secrets, MCP, SCM, model provider) and returns a list of results (errors, warnings, info) with stable ErrCodes for troubleshooting.
Package doctor runs diagnostic checks on Genie configuration and environment (config file, secrets, MCP, SCM, model provider) and returns a list of results (errors, warnings, info) with stable ErrCodes for troubleshooting.
expert
Package expert provides the LLM "expert" abstraction used by Genie's orchestrator and ReAcTree execution engine.
Package expert provides the LLM "expert" abstraction used by Genie's orchestrator and ReAcTree execution engine.
expert/expertfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
expert/modelprovider/modelproviderfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
hitl
Package hitl implements human-in-the-loop approval for non-readonly tool calls.
Package hitl implements human-in-the-loop approval for non-readonly tool calls.
hitl/hitlfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
hooks
Package hooks defines lifecycle hook interfaces for the ReAcTree execution engine.
Package hooks defines lifecycle hook interfaces for the ReAcTree execution engine.
htmlutils
Package htmlutils provides utilities for extracting readable text content from raw HTML.
Package htmlutils provides utilities for extracting readable text content from raw HTML.
httputil
Package httputil provides HTTP client and transport utilities used across Genie.
Package httputil provides HTTP client and transport utilities used across Genie.
interrupt
Package interrupt defines the [InterruptError] sentinel used by tools and middleware to signal that a tool call needs external input (human approval, clarification answer, etc.) before it can complete.
Package interrupt defines the [InterruptError] sentinel used by tools and middleware to signal that a tool call needs external input (human approval, clarification answer, etc.) before it can complete.
langfuse
Package langfuse provides observability and tracing for LLM interactions via the Langfuse service.
Package langfuse provides observability and tracing for LLM interactions via the Langfuse service.
langfuse/langfusefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
logger
Package logger provides structured logging (slog) and context-aware logger retrieval for Genie.
Package logger provides structured logging (slog) and context-aware logger retrieval for Genie.
mcp
Package mcp provides MCP (Model Context Protocol) integration for Genie using trpc-agent-go.
Package mcp provides MCP (Model Context Protocol) integration for Genie using trpc-agent-go.
mcputils
Package mcputils provides utilities for integrating MCP (Model Context Protocol) tools with trpc-agent-go.
Package mcputils provides utilities for integrating MCP (Model Context Protocol) tools with trpc-agent-go.
memory/graph
Package graph provides a knowledge graph store (entities and relations) for agent memory.
Package graph provides a knowledge graph store (entities and relations) for agent memory.
memory/graph/graphfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
memory/vector
Package vector provides the vector store used for Genie's semantic memory: embedding and searching over documents (runbooks, synced data from Drive, Gmail, Slack, etc.) so the agent can retrieve relevant context via memory_search.
Package vector provides the vector store used for Genie's semantic memory: embedding and searching over documents (runbooks, synced data from Drive, Gmail, Slack, etc.) so the agent can retrieve relevant context via memory_search.
memory/vector/vectorfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
messenger
Package messenger provides a generic, platform-agnostic interface for bi-directional messaging across chat platforms (Slack, Telegram, Teams, Google Chat, Discord, etc.).
Package messenger provides a generic, platform-agnostic interface for bi-directional messaging across chat platforms (Slack, Telegram, Teams, Google Chat, Discord, etc.).
messenger/agui
Package agui provides a Messenger adapter for the AG-UI SSE server.
Package agui provides a Messenger adapter for the AG-UI SSE server.
messenger/agui/aguifakes
Code generated by counterfeiter.
Code generated by counterfeiter.
messenger/discord
Package discord provides a Messenger adapter for the Discord platform using the WebSocket gateway for bi-directional communication.
Package discord provides a Messenger adapter for the Discord platform using the WebSocket gateway for bi-directional communication.
messenger/googlechat
Package googlechat provides a Messenger adapter for Google Chat using HTTP push for incoming events and the Chat API for outgoing messages.
Package googlechat provides a Messenger adapter for Google Chat using HTTP push for incoming events and the Chat API for outgoing messages.
messenger/media
Package media provides shared utility functions for building and describing messenger.Attachment values across platform adapters.
Package media provides shared utility functions for building and describing messenger.Attachment values across platform adapters.
messenger/messengerfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
messenger/slack
Package slack provides a DataSource connector that enumerates Slack channel messages for vectorization.
Package slack provides a DataSource connector that enumerates Slack channel messages for vectorization.
messenger/teams
Package teams provides a Messenger adapter for Microsoft Teams using the Bot Framework protocol for bi-directional communication.
Package teams provides a Messenger adapter for Microsoft Teams using the Bot Framework protocol for bi-directional communication.
messenger/telegram
Package telegram provides a Messenger adapter for the Telegram platform using long-polling for bi-directional communication.
Package telegram provides a Messenger adapter for the Telegram platform using long-polling for bi-directional communication.
messenger/whatsapp
Package whatsapp provides a Messenger adapter for WhatsApp using the WhatsApp Web multi-device protocol via whatsmeow.
Package whatsapp provides a Messenger adapter for WhatsApp using the WhatsApp Web multi-device protocol via whatsmeow.
orchestrator
Package orchestrator implements Genie's request routing and execution flow: it receives user messages, classifies intent (simple vs complex), runs the appropriate expert(s), and coordinates ReAcTree multi-step workflows.
Package orchestrator implements Genie's request routing and execution flow: it receives user messages, classifies intent (simple vs complex), runs the appropriate expert(s), and coordinates ReAcTree multi-step workflows.
orchestrator/orchestratorfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
osutils
Package osutils provides OS and path helpers used by Genie.
Package osutils provides OS and path helpers used by Genie.
pii
Package pii — context helpers for PII rehydration.
Package pii — context helpers for PII rehydration.
qrutil
Package qrutil provides utilities for generating QR code images and terminal-printable QR codes from arbitrary string content such as URLs, pairing codes, or any text that needs to be shared visually.
Package qrutil provides utilities for generating QR code images and terminal-printable QR codes from arbitrary string content such as URLs, pairing codes, or any text that needs to be shared visually.
reactree
Package reactree implements the ReAcTree (Reasoning-Acting Tree) execution engine for Genie's multi-step agent workflows.
Package reactree implements the ReAcTree (Reasoning-Acting Tree) execution engine for Genie's multi-step agent workflows.
reactree/memory/memoryfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
reactree/reactreefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
report/activityreport
Package activityreport generates markdown reports from recent audit activities and writes them to ~/.genie/reports/<agent_name>/<YYYYMMDD>_<report_name>.md, then stores the summary in the vector store so the agent can use it as runbook/skill for future runs.
Package activityreport generates markdown reports from recent audit activities and writes them to ~/.genie/reports/<agent_name>/<YYYYMMDD>_<report_name>.md, then stores the summary in the vector store so the agent can use it as runbook/skill for future runs.
retrier
Package retrier provides configurable retry logic with backoff for operations that may transiently fail (e.g.
Package retrier provides configurable retry logic with backoff for operations that may transiently fail (e.g.
runbook
Package runbook provides a loader for customer-provided instructional files ("runbooks") using the trpc-agent-go document reader framework.
Package runbook provides a loader for customer-provided instructional files ("runbooks") using the trpc-agent-go document reader framework.
security
Package security provides a centralized SecretProvider abstraction backed by gocloud.dev/runtimevar.
Package security provides a centralized SecretProvider abstraction backed by gocloud.dev/runtimevar.
security/keyring
Package keyring: device keychain storage for arbitrary key-value secrets.
Package keyring: device keychain storage for arbitrary key-value secrets.
security/securityfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
setup
Package setup provides config generation for the day-1 onboarding wizard.
Package setup provides config generation for the day-1 onboarding wizard.
skills/skillsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
tools
Package tools provides a centralized tool registry that bootstraps all tools from various integration points (file, shell, browser, MCP, etc.) and filters denied tools based on HITL configuration.
Package tools provides a centralized tool registry that bootstraps all tools from various integration points (file, shell, browser, MCP, etc.) and filters denied tools based on HITL configuration.
tools/codeskim
Package codeskim provides a code outline/skimming tool for agents.
Package codeskim provides a code outline/skimming tool for agents.
tools/datetime
Package datetime provides time and date tools for agents.
Package datetime provides time and date tools for agents.
tools/doctool
Package doctool provides document parsing tools for agents.
Package doctool provides document parsing tools for agents.
tools/encodetool
Package encodetool provides encoding, decoding, and hashing tools for agents.
Package encodetool provides encoding, decoding, and hashing tools for agents.
tools/google/calendar
Package calendar provides calendar management tools for agents.
Package calendar provides calendar management tools for agents.
tools/google/contacts
Package contacts provides Google Contacts (People API) tools for agents.
Package contacts provides Google Contacts (People API) tools for agents.
tools/google/gdrive
Package gdrive provides a DataSource connector that enumerates Google Drive files in configured folders for vectorization.
Package gdrive provides a DataSource connector that enumerates Google Drive files in configured folders for vectorization.
tools/google/gdrive/gdrivefakes
Code generated by counterfeiter.
Code generated by counterfeiter.
tools/google/gmail
Package gmail provides a DataSource connector that enumerates Gmail messages for given labels for vectorization.
Package gmail provides a DataSource connector that enumerates Gmail messages for given labels for vectorization.
tools/google/oauth
Package oauth: browser_flow runs the OAuth2 authorization code flow by opening the system browser and running a local redirect server to capture the code, then exchanging it for a token and storing it in the device keyring.
Package oauth: browser_flow runs the OAuth2 authorization code flow by opening the system browser and running a local redirect server to capture the code, then exchanging it for a token and storing it in the device keyring.
tools/google/tasks
Package tasks provides Google Tasks API tools for agents.
Package tasks provides Google Tasks API tools for agents.
tools/jsontool
Package jsontool provides JSON querying, validation, and transformation tools backed by gjson (reads) and sjson (writes).
Package jsontool provides JSON querying, validation, and transformation tools backed by gjson (reads) and sjson (writes).
tools/math
Package math provides mathematical tools (a unified arithmetic tool and a calculator/expression evaluator) that can be registered with the tool registry.
Package math provides mathematical tools (a unified arithmetic tool and a calculator/expression evaluator) that can be registered with the tool registry.
tools/networking
Package networking provides agent-callable tools for making HTTP requests (GET, POST, etc.) to arbitrary URLs with configurable headers, body, and timeout.
Package networking provides agent-callable tools for making HTTP requests (GET, POST, etc.) to arbitrary URLs with configurable headers, body, and timeout.
tools/ocrtool
Package ocrtool provides optical character recognition (OCR) tools for agents.
Package ocrtool provides optical character recognition (OCR) tools for agents.
tools/pm
Package pm provides a DataSource connector for issue-tracking systems.
Package pm provides a DataSource connector for issue-tracking systems.
tools/pm/pmfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
tools/regextool
Package regextool provides regular expression tools for agents.
Package regextool provides regular expression tools for agents.
tools/scm
Package scm provides a single DataSource connector backed by go-scm for all SCM providers (GitHub, GitLab, Bitbucket).
Package scm provides a single DataSource connector backed by go-scm for all SCM providers (GitHub, GitLab, Bitbucket).
tools/scm/scmfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
tools/sqltool
Package sqltool provides SQL database query tools for agents.
Package sqltool provides SQL database query tools for agents.
tools/toolsfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
tools/webfetch
Package webfetch provides a URL content fetcher for agents.
Package webfetch provides a URL content fetcher for agents.
tools/youtubetranscript
Package youtubetranscript provides a tool to fetch transcript/captions from YouTube videos.
Package youtubetranscript provides a tool to fetch transcript/captions from YouTube videos.
toolwrap
Package toolwrap provides composable middleware for tool execution.
Package toolwrap provides composable middleware for tool execution.
toolwrap/toolwrapfakes
Code generated by counterfeiter.
Code generated by counterfeiter.
ttlcache
Package ttlcache provides a TTL-based cache for values that can be refreshed on expiry (e.g.
Package ttlcache provides a TTL-based cache for values that can be refreshed on expiry (e.g.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL