larksuite / larksuite/cli

Feature request: Install skills into a dedicated subdirectory/category instead of root skills directory

Open
#1,497 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

domain/core enhancement
Dominant language
Go
Stars
17.3k
Forks
1.4k
Avg merge
2d 4h
Merged PRs (30d)
105

Description

Feature Description

When lark-cli installs skills (e.g., via lark skills install), they are placed directly into the root skills directory (e.g., ~/.agents/skills/). All 20+ lark-* skills are mixed together with my own custom skills and other third-party skills.

~/.agents/skills/
├── brainstorming/        # my own skill
├── find-skills/          # third-party
├── hdd/                  # my own skill
├── improve/              # my own skill
├── lark-approval/        # installed by lark-cli
├── lark-apps/            # installed by lark-cli
├── lark-attendance/      # installed by lark-cli
├── lark-base/            # ...
├── lark-calendar/
├── lark-contact/
├── lark-doc/
├── lark-drive/
├── lark-event/
├── lark-im/
├── lark-mail/
├── lark-markdown/
├── lark-minutes/
├── lark-note/
├── lark-okr/
├── lark-openapi-explorer/
├── lark-shared/
├── lark-sheets/
├── lark-skill-maker/
├── lark-slides/
└── ...

Motivation

  • Organization: As more skills get installed (20+ lark skills already), the root directory becomes cluttered and hard to navigate.
  • Separation of concerns: User-created skills, third-party skills, and lark-cli-managed skills should be visually and structurally separated.
  • Bulk operations: Easier to update/remove all lark skills at once if they live in their own directory.
  • Consistency: Many other CLI tools install extensions/plugins into dedicated subdirectories (e.g., ~/.config/nvim/lua/plugins/, VS Code extensions in their own folder).

Proposed Solution

Install lark-cli skills into a dedicated subdirectory under the skills root, for example:

~/.agents/skills/lark/
├── lark-approval/
├── lark-apps/
├── lark-attendance/
└── ...

Or allow users to configure a target category/directory via a flag or config option:

lark skills install --category lark
# or in config: skills.category = "lark"

The skill loader would need to scan one level deeper (subdirectories of the skills root) to discover skills in subdirectories.

Alternatives Considered

  • Prefix-based naming (status quo): The lark- prefix helps identify them, but does not solve clutter — all directories still sit at the same level.
  • Manual symlinks: Users could move skills and symlink them back, but that is fragile and defeats the purpose of a package manager.

Would love to hear maintainers' thoughts on this. Happy to contribute a PR if there is interest

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by locating the lark skills install implementation and the skill loader that scans ~/.agents/skills/. Review how installation targets and configuration are represented, then define the directory behavior and discovery rules; done means installed Lark skills are separated without breaking discovery or existing user skills.

Written by the indexing model from the issue text.

Assessment

Tech stack
go
Domain
cli
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.