# ShellProperty

The **ShellProperty** object represents a shell property - an item of metadata for a file or folder that comes from Windows or third-party extensions (as opposed to metadata from Opus's native metadata system).

The [**FSUtil**](https://chaoses-ib.gitbook.io/directory-opus/manual/reference/scripting_reference/scripting_objects/fsutil)**.GetShellPropertyList** method lets you retrieve a list of available shell properties. You can then use [**FSUtil**](https://chaoses-ib.gitbook.io/directory-opus/manual/reference/scripting_reference/scripting_objects/fsutil)**.GetShellProperty** or [**Item**](https://chaoses-ib.gitbook.io/directory-opus/manual/reference/scripting_reference/scripting_objects/item)**.ShellProp** to retrieve the value of a property for a particular file.

| Property Name     | Return Type | Description                                                                                                                                                                                                                                                                                                                                                                                 |
| ----------------- | ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **defwidth**      | *int*       | The default width in pixels a column displaying this property should use.                                                                                                                                                                                                                                                                                                                   |
| **display\_name** | *string*    | The display name of this property (the name that should be shown to users).                                                                                                                                                                                                                                                                                                                 |
| **isviewable**    | *bool*      | The property is intended to be viewed by the user (e.g. in a column).                                                                                                                                                                                                                                                                                                                       |
| **justify**       | *string*    | The default column justification for this property (**left**, **right**, **center**).                                                                                                                                                                                                                                                                                                       |
| **pkey**          | *string*    | The PKEY (property key) for this property. This is a property's unique ID and the canonical way to refer to a property. You can use the **raw\_name** and **display\_name** values to access properties as well, but they are potentially inaccurate (since it's possible to have two properties with the same name) and also slower as the property has to be looked up by name each time. |
| **raw\_name**     | *string*    | An internal name used by the property provider.                                                                                                                                                                                                                                                                                                                                             |
| **type**          | *string*    | The type of data this property returns; **string**, **number**, **datetime** are the only supported types currently.                                                                                                                                                                                                                                                                        |


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://chaoses-ib.gitbook.io/directory-opus/manual/reference/scripting_reference/scripting_objects/shellproperty.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
