GraphQL client in the terminal.
Project description
Build and execute GraphQL queries in the terminal.
This project is inspired by https://graphiql-online.com.
Installation
pip3 install gqt
Controls
Navigate with arrow keys.
Select fields with <Space>.
Toggle between argument selection and its value with <Tab>.
End with <Enter>.
Examples
Set default GraphQL endpoint:
$ export GQT_ENDPOINT=https://mys-lang.org/graphql
Interactively create a query and execute it:
$ gqt
{
"statistics": {
"numberOfGraphqlRequests": 3
}
}
Repeat last query:
$ gqt -r
{
"statistics": {
"numberOfGraphqlRequests": 4
}
}
Print the query instead of executing it:
$ gqt -q
{statistics {numberOfGraphqlRequests}}
Use jq for colors and extracting field values:
$ gqt | jq
{
"statistics": {
"numberOfGraphqlRequests": 5
}
}
$ gqt | jq .statistics.numberOfGraphqlRequests
6
Alternatively use and bat for colors:
$ gqt | bat -l json
───────┬────────────────────────────────────────────
│ STDIN
───────┼────────────────────────────────────────────
1 │ {
2 │ "statistics" : {
3 │ "numberOfGraphqlRequests" : 7
4 │ }
5 │ }
───────┴────────────────────────────────────────────
Use YAML output and bat for colors:
$ gqt -y | bat -l yaml
───────┬────────────────────────────────────────────
│ STDIN
───────┼────────────────────────────────────────────
1 │ statistics:
2 │ numberOfGraphqlRequests: 8
───────┴────────────────────────────────────────────
Print the schema:
$ gqt --print-schema | bat -l graphql
───────┬────────────────────────────────────────────
│ STDIN
───────┼────────────────────────────────────────────
1 │ type Query {
2 │ standardLibrary: StandardLibrary!
3 │ statistics: Statistics!
4 │ activities: [Activity!]!
5 │ }
6 │
7 │ type StandardLibrary {
8 │ package(name: String!): Package!
9 │ packages: [Package!]
10 │ numberOfPackages: Int
11 │ numberOfDownloads: Int
12 │ }
...
Known issues
Arguments does not work very well.
Scrolling does not work.
Fragments and unions are not implemented.
Mutations and subscriptions are not implemented.
And much more.
Ideas
Show GraphQL API documentation.
Mutations?
Subscriptions?
Arguments and variables:
■: not null □: null $: variable
Scalar example:
╭─ Query │ ▼ standard_library │ ▼ package │ ■ name: "" │ □ name │ ▶ packages
List example:
╭─ Query │ ▼ item │ □ kinds: │ ■ kinds2: │ [0] ■ a: "foo" │ ■ b: "eq" │ ■ c: │ [0] ■ a: "x" │ ■ b: "y" │ [1] │ [1] ■ a: "bar" │ ■ b: "ne" │ □ c: │ [2]
Variables example:
╭─ Query │ ▼ standardLibrary │ ▼ package │ $ name: name │ ■ id: 5 │ $ kind: kind │ □ name │ □ numberOfDownloads │ ▶ statistics ╭─ Variables │ name: "foo" │ kind: │ [0] ■ a: "bar" │ ■ b: "ne" │ □ c: │ [1]
Print the variables:
$ gqt -v {"name": "foo", "kind": [{"a": "bar", "b": "ne"}]}
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.